Skip to content

Commit 68bdce1

Browse files
Merge pull request #1756 from CodingTestStudy2/최원준
[최원준] Day06
2 parents f6b5e47 + cdb23c0 commit 68bdce1

2 files changed

Lines changed: 57 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
맨앞을 9로 채우면서 s를 차감합니다.
6+
7+
2. 시간복잡도 :
8+
O(5)
9+
10+
3. 자료구조/알고리즘 :
11+
-
12+
13+
'''
14+
class Solution:
15+
def largestInteger(self, n: int, s: int) -> int:
16+
ans = 0
17+
18+
for _ in range(n):
19+
num = min(9, s)
20+
ans = ans * 10 + num
21+
s-=num
22+
23+
return -1 if s>0 else ans
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
- 합을 구하기 위한 bfs
6+
- 가장 작은 노드를 방문하기 위한 inorder
7+
8+
2. 시간복잡도 :
9+
O(n + n)
10+
11+
3. 자료구조/알고리즘 :
12+
bfs, inorder traversal
13+
14+
'''
15+
class Solution:
16+
def convertBST(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
17+
self.total = 0
18+
19+
def get_total(node):
20+
return node.val + get_total(node.left) + get_total(node.right) if node else 0
21+
22+
def recalculate(node):
23+
if not node:
24+
return
25+
26+
recalculate(node.left)
27+
original = node.val
28+
self.total -= original
29+
node.val += self.total
30+
recalculate(node.right)
31+
32+
self.total = get_total(root)
33+
recalculate(root)
34+
return root

0 commit comments

Comments
 (0)