내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
백준 온라인 저지 (BOJ)
»
트리의 지름
ps:problems:boj:1967
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 트리의 지름 ====== * [[ps:problems:boj:1167|트리의 지름 (1167번)]] 문제와 제목도 같고, 구해야 하는 것도 똑같다. 하지만 1167번은 그냥 트리이고 이 문제느 rooted tree라는 점만 다르다. ===== 풀이 ===== * [[ps:트리#트리의 지름]] 참고 * rooted tree 이므로, DP 방식을 써도 되지만, [[ps:problems:boj:1167|1167번]]과 똑같이 BFS/DFS에 기반한 방법을 사용했다. * 실제 제출된 코드들의 속도를 보면 DP방식이 더 빠른것 같긴 하다. ===== 코드 ===== <dkpr py> """Solution code for "BOJ 1967. 트리의 지름". - Problem link: https://www.acmicpc.net/problem/1967 - Solution link: http://www.teferi.net/ps/problems/boj/1967 """ import operator import sys from teflib import tgraph def main(): n = int(sys.stdin.readline()) graph = [{} for x in range(n)] for _ in range(n - 1): u, v, w = [int(x) for x in sys.stdin.readline().split()] graph[u - 1][v - 1] = graph[v - 1][u - 1] = w farthest = max(enumerate(tgraph.min_distances_on_tree(graph, 0)), key=operator.itemgetter(1))[0] diameter = max(tgraph.min_distances_on_tree(graph, farthest)) print(diameter) if __name__ == '__main__': main() </dkpr> * Dependency: [[:ps:teflib:tgraph#min_distances_on_tree|teflib.tgraph.min_distances_on_tree]] {{tag>BOJ ps:problems:boj:골드_4 ps:teflib:min_distances_on_tree}}
ps/problems/boj/1967.txt
· 마지막으로 수정됨: 2021/01/17 15:15 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로