9934번: 완전 이진 트리
상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래
www.acmicpc.net
나의 코드
k = int(input())
arr = list(map(int, input().split()))
ans = [[] for _ in range(k)] # 해당되는 노드 넣는 칸 생성
def tree(arr, level):
middle = len(arr)//2
ans[level].append(arr[middle])
if len(arr) == 1:
return
tree(arr[:middle], level+1)
tree(arr[middle+1:], level+1)
tree(arr, 0)
for i in ans:
print(*i)
결과

리스트를 반으로 나누면서 인덱스를 구하며 값을 저장하려고 했는데 어려웠다. 그래서 반으로 나누며 리스트값이 1개가 되도록 재귀함수를 구현한 것을 찾아볼 수 있었다. 많은 코드들 중에 제일 이해하기 쉬운 코드로 다시 적용하며 맞힐 수 있었다.
'스터디 1일 1커밋' 카테고리의 다른 글
| 240331 [BOJ/백준] 2805. 나무 자르기 (1) | 2024.03.31 |
|---|---|
| 240328 [BOJ/백준] 12789. 도키도키 간식드리미 (0) | 2024.03.28 |
| 240326 [BOJ/백준] 2839. 설탕 배달 (1) | 2024.03.26 |
| 240325 [BOJ/백준] 14503. 로봇 청소기 (0) | 2024.03.25 |
| 240321 [BOJ/백준] 2668. 숫자고르기 (0) | 2024.03.22 |