목표 : LCA(Lowest Common Ancestor) 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해본다.
실습은 총 4문제로 알고리즘 수업 시간이 진행되었던 실습 문제이다.
1. root 찾기
이진 트리의 노드의 개수가 주어지고, 노드의 key와 자식들이 주어졌을 때 해당 트리의 root를 찾으시오.
[입력 값]
6 # N
D . . # 간선의 정보 N개
E . .
F . .
C F .
B D E
A B C
[예상 출력]
A
2. 트리 순회
이진 트리의 노드의 개수가 주어지고, 노드의 key와 자식들이 주어졌을 때 해당 트리의 Preorder/ Inorder / Postorder 순으로 순회하고 출력하시오.
[입력 값]
6 # N
D . . # 간선의 정보 N개
E . .
F . .
C F .
B D E
A B C
[예상 출력]
A B D E C F
D B E A F C
D E B F C A
3. 최소 공통 조상 노드
이진 트리의 노드의 개수가 주어지고, 노드의 key와 자식들이 주어졌을 때 해당 트리를 구축하고, 질의 노드의 최소 공통 조상 노드를 출력하시오.
[입력 값]
5 # N개
4 . . # 간선의 정보 N개
3 . .
2 4 5
1 2 3
5 . .
3 4 # 질의 노드
[예상 출력]
1
4. 이후 백준에서 LCA과 관련된 문제를 풀어본다.
www.acmicpc.net/problem/11437 (11437번 - LCA)
11437번: LCA
첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정
www.acmicpc.net
'⛹️ 라이프 > 2020 겨울방학 모각코(개인)' 카테고리의 다른 글
[코독하구만 팀] 2021.01.13(수) - 4주차 개인 목표 (0) | 2021.01.13 |
---|---|
[코독하구만 팀] 2020.01.05(화) - 3주차 개인 결과 (0) | 2021.01.05 |
[코독하구만 팀] 2020.12.30(수) - 2주차 개인 결과 (0) | 2020.12.30 |
[코독하구만 팀] 2020.12.30(수) - 2주차 개인 목표 (0) | 2020.12.30 |
[코독하구만 팀] 2020.12.23(수) - 1주차 개인 결과 (0) | 2020.12.23 |