[백준] 1167번: 트리의 지름

문제

https://www.acmicpc.net/problem/1167

풀이

1. 루트(1번정점)에서 제일 거리가 먼 정점을 찾는다.
2. 찾은 그 정점에서 다시 제일 먼 정점을 찾는다. 그게 바로 트리의 지름이다!

bfs탐색을 2번하여 진행한다.
거리를 저장하는 배열을 만들어서
시작정점에서부터 모든 정점까지 각 정점과의 거리를 저장한다.

결과


처음엔 트리의 지름 문제를 이해를 못해서 탐색을 한번만 했다가 틀렸다.
질문검색을 통해 문제를 먼저 이해했다ㅠㅠ
(+
트리의 지름 다른 문제도 있다. 이걸 먼저 풀어보는 것이 더 좋았을뻔했다. https://www.acmicpc.net/problem/1967
)
탐색을 두번해야한다는 것을 깨닫고 진행하는데
두번째 탐색할때 거리배열이랑 체크배열을 비우지 않고 해서 런타임에러나고..
memset으로 비워야되는구나 하고 했는데 #include <cstring>안해줘서 컴파일에러..
반성하고있다ㅠㅠ

코드

https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/1167.cpp

댓글

이 블로그의 인기 게시물

[백준] 1850번: 최대공약수

[백준] 1717번: 집합의 표현