SQL

[Hacker Rank] SQL_Intermediate_Medium (이진트리/Case When)

jjanggun0930 2025. 1. 30. 20:48

난이도 : 중

걸린 시간 : 2일 

 

+ 2일 내내 보고만 있었던 건 아니지만, 매일 1시간 넘게 쳐다 보고 있었던 것 같은...

처음엔 재귀라고 확신해서 재귀로 코드를 짜보려고 했지만, 사실 아직 CTE가 완벽하게 손에 익은것도 아니고 어디서부터 어떻게 짜야할 지 고민하느라 시작도 못했었다. 

그리고 다음날 아무 생각없이 또 문제를 쳐다보고 있다가 갑자기 생각난 case when...! 

 

풀고 다른 사람 풀이도 찾아보니 다들 case when으로 풀었더라는,,, 혼자 재귀에 빠져서 시간을 낭비.... 

 

그래도 case when 생각하고는 바로 통과 ㅋ 

중간 난이도 오자마자 와 이렇게 까지 어렵다고? 했는데,, 사실 문제 이해능력이 떨어졌던 걸로..^^ 

 

[정답 풀이]

select N, case when p is null then 'Root'
            when N in (select P from BST) then 'Inner'
            else 'Leaf' end node
from BST
order by N