문제 Write a query to find the node type of Binary Tree ordered by the value of the node. Output one of the following for each node:
- Root: If node is root node.
- Leaf: If node is leaf node.
- Inner: If node is neither root nor leaf node.
Sample Output
1 Leaf
2 Inner
3 Leaf
5 Root
6 Leaf
8 Inner
9 Leaf
문제 풀이
노드 상태에 따라 출력되는 값이 달라져야 하기 때문에 case문을 적용 시킨다.
order by로 N의 오름차순에 따라 값을 정렬하고 nodeType을 결정하는 것은 부모 노드가 null이면 Root이며 부모 노드 중에서 해당 N이 없으면 Leaf 노드가 된다. 둘 다 해당이 안된다면 Inner 노드로 취급한다.
select N, (
case when P is null then 'Root'
when N not in (
select distinct P
from BST
where P is not null) then 'Leaf'
else 'Inner'
end)
as nodeType
from BST
order by N;
'언어 & 라이브러리 > SQL' 카테고리의 다른 글
SQLZOO The JOIN operation 문제 풀이 (0) | 2022.01.19 |
---|---|
해커랭크 HackerRank New Companies Advanced Select (0) | 2022.01.19 |
해커랭크 HackerRank The PADS Advanced Select (0) | 2022.01.19 |
SQLZOO SELECT BASIC 문제 풀이 (0) | 2022.01.19 |
해커랭크 HackerRank The Report Basic Join (0) | 2022.01.19 |
댓글