https://programmers.co.kr/learn/courses/30/lessons/86971
#include <string>
#include <vector>
using namespace std;
vector<int> m[200];
int bfs(int togo, int now, int count) {
for (int i = 0; i < m[now].size(); i++) {
if (m[now][i] != togo) {
count = bfs(now, m[now][i], count+1);
}
}
return count;
}
int solution(int n, vector<vector<int>> wires) {
int answer = 2000;
for (auto w : wires) {
m[w[0]].push_back(w[1]);
m[w[1]].push_back(w[0]);
}
for (auto w : wires) {
int sum = bfs(w[0], w[1], 1);
int comp = n - (2 * sum);
answer = min(answer, abs(comp));
}
return answer;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 프로그래머스 "빛의 경로 사이클" (0) | 2022.05.21 |
---|---|
(c++) 프로그래머스 "교점에 별 만들기" (0) | 2022.05.17 |
(c++) 프로그래머스 "모음사전" (0) | 2022.05.14 |
(c++) 프로그래머스 "[3차] 방금 그곡" (0) | 2022.05.14 |
(c++) 백준 "2477. 참외밭" (0) | 2022.05.12 |