일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- equals
- series
- 스프링
- 다익스트라
- ddd
- DP
- 헥사고날 아키텍처
- BFS
- 문자열
- UML
- 포트앤어댑터 아키텍처
- pandas
- springboot
- 백준
- java
- dataframe
- JPA
- spring security
- 데이터 flow
- 이펙티브 자바
- 자바
- 위상정렬
- 파이썬
- 비트마스크
- 세그먼트 트리
- docker
- 알고리즘
- disjoint set
- dfs
- Redis
Archives
- Today
- Total
코딩못하는사람
1167 트리의 지름순 본문
1.접근
모든 정점을 기준으로 DFS를 들어가보는 생각밖에 나지 않아서 풀어봤지만 시간초과가 났다(2≤V≤100,000)
도저히 생각나지 않았는데 트리의 지름을 구하는 쉬운 방법이 있었다.
2.풀이
트리의 지름을 구하려면 임의의 점을 잡고 그 점으로부터 최대거리를 가진 곳의 인덱스에서 다시 최대 거리를 구하면
그것이 지름이 된다.(처음 임의의 점에서 최대거리를 구할 때 트리의 지름과 겹치는 부분이 생길 수 밖에 없기 때문에 이라고 한다.) 따라서 DFS를 두번 써주면 된다 (임의의 점,임의의 점에서의 최대 거리 인덱스)
트리의 지름을 구하는 공식은 이곳에 자세히 있다.https://blog.myungwoo.kr/112
3.코드
4.배운점
- DFS나 재귀를 쓸때는 습관적으로 sys.setrecursion을 해주어야겠다 (런타임에러 방지)
- 트리의 지름 구하는 공식은 알아두자
- 입력 받을 때 순서대로 올꺼라고 생각하지말자(하루날림)
'백준 문제풀이(JAVA,Python)' 카테고리의 다른 글
18809 Gaaaaaaaaaarden (1) | 2020.09.22 |
---|---|
2887 행성터널 (1) | 2020.09.03 |
13913 숨바꼭질 4 (BFS 역추적) (1) | 2020.09.02 |
2263 트리의 순회, 5639 이진 검색 트리 (1) | 2020.08.28 |
1086 박성원 (비트,DP) (1) | 2020.08.22 |
Comments