Computer Science/알고리즘(백준+프로그래머스)

    프로그래머스 level 3- 가장 먼 노드

    https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr #Idea BFS의 가장 기본 개념을 묻는 문제이다. 시작 노드에서 level 별로 노드들을 탐색하고, 가장 깊이 있는 노드의 개수를 세면 된다. 이미 지난 정점만 visited list를 이용해 잘 체크해주면 아주 쉬운 문제이다. +) Queue를 사용하는 BFS 기본 개념은 아래 포스팅 참고 https://mslilsunshine.tistory.com/135 그래프와 관련 알고리즘(DFS,BFS) 1. Graph란? : 일련의 ..

    프로그래머스 level 2- 타겟 넘버

    https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr # Idea 주어진 배열 numbers는 순서대로 더하거나 빼야하고, 이 과정을 그려보면 Tree로 표현됨을 알 수 있다. : (Edge를 +or - 로 표현하고, 각 노드들을 결과 값으로 표현한다) 따라서 Tree를 끝까지 순회해서 결과가 Target과 같은 경우의 수를 구하면 되며, 이는 DFS로 풀릴 수..

    프로그래머스 level 2- 기능 개발

    https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr # Idea : 기본적으로 Queue 를 이용한 문제이고, 아래의 지문을 읽어보면 앞의 기능이 모두 개발되지 않으면 뒤의 기능 또한 배포될 수 없다는 것에서 힌트를 얻을 수 있다. -> 일단 기능들이 전부 queue에서 빠져나갈때까지 개발을 계속 진행하고, 매일 가장 앞의 기능이 100%이상 개발이 되었는지 확인하고, 뒤의 기능이 먼저 개발이 끝날 수도 ..