하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능
[3코1파] 2023.01.04~ (208차)
[4코1파] 2023.01.13~ (200일차)
[1스4코1파] 2023.04.12~ (111일차)
[1스4코2파] 2023.05.03 ~ (89일차)
2023.07.31 [209일차]
Tree
199. Binary Tree Right Side View
https://leetcode.com/problems/binary-tree-right-side-view/description/
문제 설명
트리 노드의 오른쪽 시선에서 봤을 때 보이는 트리 노드의 val 값을 return 해야 한다
처음에는 right node의 val을 넣는 건줄 알고 개 헛짓했던 것이다.
양씨가 도와줬던 것이다.
문제 풀이 방법
queue를 이용해서 bfs로 내려가면서 node가 있으면 node의 val 값을 넣고
left, right를 모두 queue에 넣으면서 순서대로 pop 한다.
left, right에 해당하는 노드의 val을 담고 depth 가 끝나면, 그 depth의 가장 마지막에 담긴 val 값만 answer에 넣어준다.
내 코드
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
ans = []
queue = collections.deque()
queue.append(root)
while queue:
qLen = len(queue)
level = []
for i in range(qLen):
node = queue.popleft()
if node:
level.append(node.val)
queue.append(node.left)
queue.append(node.right)
print(level)
if level:
ans.append(level[-1])
return ans
증빙
여담
굿ㅋ