File tree 2 files changed +69
-2
lines changed 2 files changed +69
-2
lines changed Original file line number Diff line number Diff line change
1
+
2
+ """
3
+ 문제 이름: 완전 이진 트리
4
+ 문제 번호: 9934
5
+ 문제 링크: https://www.acmicpc.net/problem/9934
6
+ 난이도: Silver I
7
+ 태그: 구현, 재귀, 트리
8
+ """
9
+ import sys
10
+
11
+ def input (): return sys .stdin .readline ().rstrip ()
12
+
13
+
14
+ def solve (k , nodes ):
15
+ result = [[] for _ in range (k )]
16
+ def recu (start , end , depth ):
17
+ if start == end :
18
+ result [depth ].append (nodes [start ])
19
+ return
20
+ mid = (start + end )// 2
21
+ result [depth ].append (nodes [mid ])
22
+
23
+ recu (start , mid - 1 , depth + 1 )
24
+ recu (mid + 1 , end , depth + 1 )
25
+ recu (0 , len (nodes )- 1 , 0 )
26
+ return result
27
+
28
+
29
+ k = int (input ())
30
+ nodes = [int (x ) for x in input ().split ()]
31
+
32
+ result = solve (k , nodes )
33
+
34
+ for lst in result :
35
+ print (* lst )
Original file line number Diff line number Diff line change 2
2
file : " 9934.py"
3
3
name : " 완전 이진 트리"
4
4
src : " https://www.acmicpc.net/problem/9934"
5
- tags :
5
+ tags :
6
6
- 구현
7
7
- 재귀
8
8
- 트리
9
- done : false
9
+ done : true
10
10
draft : false
11
11
level : 10
12
12
difficulty : " Silver I"
13
13
date : 2021-11-02
14
14
---
15
+
16
+ #완전 이진 트리
17
+
18
+ ``` python
19
+ import sys
20
+
21
+ def input (): return sys.stdin.readline().rstrip()
22
+
23
+
24
+ def solve (k , nodes ):
25
+ result = [[] for _ in range (k)]
26
+ def recu (start , end , depth ):
27
+ if start == end:
28
+ result[depth].append(nodes[start])
29
+ return
30
+ mid = (start+ end)// 2
31
+ result[depth].append(nodes[mid])
32
+
33
+ recu(start, mid- 1 , depth+ 1 )
34
+ recu(mid+ 1 , end, depth+ 1 )
35
+ recu(0 , len (nodes)- 1 , 0 )
36
+ return result
37
+
38
+
39
+ k = int (input ())
40
+ nodes = [int (x) for x in input ().split()]
41
+
42
+ result = solve(k, nodes)
43
+
44
+ for lst in result:
45
+ print (* lst)
46
+ ```
You can’t perform that action at this time.
0 commit comments