전체 글 299

프로그래머스 알고리즘 고득점 Kit - 그래프

가장 먼 노드 - 1번 노드로부터 가장 멀리 떨어진 노드 개수 구하기 - 최장경로를 가지는 노드 개수를 구하는 문제이므로 BFS로 접근했다 (동일 거리의 노드들을 순서대로 접근) - maxDist를 저장해두고 (현재까지) 최장거리의 노드 개수들을 저장해둠 #include #include using namespace std; vector graph[20001]; bool visited[20001]; int solution(int n, vector edge) { for(auto e : edge) { graph[e[0]].push_back(e[1]); graph[e[1]].push_back(e[0]); } int maxDist = 0, maxNum = 0; queue q; visited[1] = true; q..

web/알고리즘 2024.02.25

프로그래머스 알고리즘 고득점 Kit - 깊이/너비 우선 탐색(DFS/BFS

타겟 넘버 - 주어진 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수 구하기 (숫자의 순서 유지) int answer = 0; void dfs(vector& numbers, int idx, int target, int val) { if(idx == numbers.size()) { if(val == target) answer++; return; } dfs(numbers, idx+1, target, val+numbers[idx]); dfs(numbers, idx+1, target, val-numbers[idx]); } int solution(vector numbers, int target) { dfs(numbers, 0, target, 0); return answer; } // 재귀함수 이용하여 d..

web/알고리즘 2024.02.24