Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Frustum
- 프로그래머스
- Programmers
- C++
- UE5
- UnrealEngine5
- directx
- DirectX11
- UnrealEngine4
- Unreal Engine5
- NRVO
- softeer
- GeeksForGeeks
- winapi
- 백준
- RVO
- 줄 세우기
- RootMotion
- DeferredRendering
- 팰린드롬 만들기
- IFileDialog
- C
- 1563
- baekjoon
- algorithm
- const
- 2294
- 언리얼엔진5
- 티스토리챌린지
- 오블완
Archives
- Today
- Total
Game Develop
[Algorithm] Baekjoon 11725번 : 트리의 부모 찾기 본문
https://www.acmicpc.net/problem/11725
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
vector<int> v[100001];
bool visited[100001];
int result[100001];
void recur(int n)
{
visited[n] = true;
for (int i = 0; i < v[n].size(); i++)
{
int next = v[n][i];
if (!visited[next])
{
result[next] = n;
recur(next);
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n = 0;
int input1 = 0;
int input2 = 0;
cin >> n;
for (int i = 0; i < n-1; i++)
{
cin >> input1 >> input2;
v[input1].push_back(input2);
v[input2].push_back(input1);
}
recur(1);
for (int i = 2; i <= n; i++)
{
printf("%d\n", result[i]);
}
}
|
cs |
무난한 dfs로 푼 코드인데, 저기서 printf를 cout으로 하면 시간초과가 뜬다.
반드시 백준에서 풀때는 cout대신 printf를 사용하도록 하자.
문제자체는 dfs의 성질을 이용해서 푸는 문젠데 솔직히 나는 보자마자 바로 코드가 떠오르지 않았다.
개인적인 생각이지만 이정도는 바로 생각이 났어야 했는데.. 아직도 dfs든 bfs든, 문제를 훨씬 더 많이 풀어봐야할 것 같다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[Algorithm] Baekjoon 1932번 : 정수 삼각형 (0) | 2022.12.05 |
---|---|
[Algorithm] Baekjoon 1629번 : 곱셈 (0) | 2022.12.04 |
[Algorithm] Baekjoon 11053번 : 가장 긴 증가하는 부분수열 (0) | 2022.12.03 |
[Algorithm] Baekjoon 15666번 : N과M (12) (0) | 2022.12.03 |
[Algorithm] Baekjoon 2407번 : 조합 (1) | 2022.12.02 |