[SQL] Hackerrank - Binary Tree Nodes
2023. 4. 2. 01:27ㆍ공부/SQL
자존감 회복을 위해서 간단한 문제를 풀어보았다.
Problem
Binary Tree Node를 Node 칼럼과 Parent 칼럼으로 저장하는데 각각의 칼럼은 자신의 값과 부모노드의 값을 가지고 있다고 가정한 문제임 여기서 Sample Input 으로 임의의 Nodes 들을 입력했을때, 해당 노드의 Type과 value를 출력하라는 문제였음
Condition
노드의 타입은 3가지
Root: If node is root node.
Leaf: If node is leaf node.
Inner: If node is neither root nor leaf node.
Solution
Select Case문으로 간단하게 처리가 가능할것 같았다. 먼저 해당 노드의 칼럼인 n과 p를 통해서 노드들의 타입을 판별하는 코드를 작성해야 된다고 판단함.
Root 타입은 부모 노드가 Null
Inner 타입은 부모노드가 존재하면서, Binary Table의 p 칼럼에 본인의 n 값이 존재야한다.
Leaf 타입은 부모노드가 존재하면서, Binary Table의 p 칼럼에 본인의 n 값이 존재하지 않아야 한다.
이건 서브쿼리로 해결할 수 잇을것 같음
SELECT
n,
(CASE
WHEN p IS NULL THEN 'Root'
WHEN p IS NOT NULL AND n in (SELECT p from BST) THEN 'Inner'
ELSE 'Leaf'
END) as type
FROM BST
ORDER BY n
'공부 > SQL' 카테고리의 다른 글
[SQL] Hackerrank - Placements (0) | 2023.04.05 |
---|---|
[SQL] HackerRank - Project Planning (0) | 2023.04.05 |
[SQL] Hackerrank - Olivander's Inventory (0) | 2023.03.31 |
[SQL] HACKERRANK - TOP COMPETITORS (0) | 2023.03.31 |
[SQL] HAKERRANK - THE REPORT (0) | 2023.03.31 |