문제
"노드" || "노드의 부모"로 구성된 테이블에서
- Root: root node
- Leaf: leaf node
- inner: neither root node nor leaf node
구분하여 node 오름차순으로 정렬
Sample Output
1 Leaf
2 Inner
3 Leaf
5 Root
6 Leaf
8 Inner
9 Leaf
풀이
1. P가 null이면 root node 이다.
CASE WHEN P IS NULL THEN 'Root'
2. N 중에 P에도 값이 있는 node는 누군가의 부모이므로 leaf node가 될 수 없다. root node도 아니기에 inner node이다.
CASE WHEN N IN (SELECT DISTINCT P FROM BST) THEN 'Inner'
3. 그 외에는 전부 leaf node이다.
CASE ELSE 'Leaf'
4. 종합하여 N과 함께 출력하고 N을 기준으로 오름차순으로 정렬한다.
SELECT
N,
(CASE
WHEN P IS NULL THEN 'Root'
WHEN N IN (SELECT DISTINCT P FROM BST) THEN 'Inner'
ELSE 'Leaf'
END) AS position
FROM BST
ORDER BY N
'SQL' 카테고리의 다른 글
[HackerRank] Weather Observation Station 18(MySQL) (0) | 2024.05.18 |
---|---|
[HackerRank] New Companies(MySQL) (0) | 2024.05.11 |
[HackerRank] Occupations(MySQL) (0) | 2024.04.01 |
[HackerRank] The PADS(MySQL) (0) | 2024.03.20 |