반응형
-문제
-코드
틀렸던 이유 : 인접리스트 사용함(특정 방향으로만 이동가능하게 구현해서 일부 경우의 수를 빼먹음)
인접행렬 사용해서 양방향 이동 가능하게 하여 오류수정
#include<stdio.h>
int n, m, cnt, ch[101], map[101][101];
void DFS(int v)
{
ch[v] = 1;
cnt++;
for (int i = 1; i <= n; i++)
{
if (map[v][i] == 1 && ch[i] == 0)
{
DFS(i);
}
}
}
int main()
{
int a, b;
scanf("%d", &n);
scanf("%d", &m);
for (int i = 1; i <= m; i++)
{
scanf("%d %d", &a, &b);
map[a][b] = map[b][a] = 1;
}
DFS(1);
printf("%d", cnt-1);
return 0;
}
반응형
'이론 > 코딩테스트' 카테고리의 다른 글
[백준] 1806번 부분합 (투포인터 알고리즘) (0) | 2022.07.29 |
---|---|
[백준] 2003번 수들의 합 2 (투포인터 알고리즘) (0) | 2022.07.29 |
[백준] 11724번 연결 요소의 개수 (DFS) (0) | 2022.07.28 |
[백준] 1010번 다리놓기 (동적 계획법/Dynamic Programming) (0) | 2022.07.28 |
[백준] 1003번 피보나치 함수 (동적 계획법/Dynamic Programming) (0) | 2022.07.28 |