CodingTest/LeetCode
[LeetCode] 547. Number of Provinces, Medium
뜸부깅
2025. 4. 25. 14:48
반응형
1. 문제
- 2차원 배열의 좌표로 각 도시의 연결 정보가 주어질 때, 직접 혹은 간접으로 연결된 그룹을 한 개로 보고 존재하는 지방 도시의 개수를 구해라.
2. 해결
function findCircleNum(isConnected: number[][]): number {
let count = 0;
function DFS(y: number) {
for(let i =0; i < isConnected.length; i++) {
if(isConnected[y][i] === 1) {
isConnected[y][i] = 0;
isConnected[i][y] = 0;
DFS(i);
}
}
}
for(let i = 0; i < isConnected.length; i++) {
for(let j =0; j < isConnected.length; j++) {
if(isConnected[i][j] === 1) {
isConnected[i][j] = 0;
isConnected[j][i] = 0;
DFS(j);
count++;
}
}
}
return count;
};
- 좌표를 탐색하면서, 연결 정보가 있으면 타고, 타고 올라가서 연결 정보를 모두 지운다.
- 이 과정이 끊나면 한 그룹의 탐색이 끝난 것이므로 count 증가.
- 뭔가 2중 for문이라 리팩토링할 수 있을 거 같은데..