순간을 기록으로

[HackerRank] Binary Tree Nodes | MySQL 본문

Problem Solving

[HackerRank] Binary Tree Nodes | MySQL

luminous13 2022. 4. 13. 12:01

문제

https://www.hackerrank.com/challenges/binary-search-tree-1/problem?isFullScreen=true 

 

Binary Tree Nodes | HackerRank

Write a query to find the node type of BST ordered by the value of the node.

www.hackerrank.com

 

풀이

- 테이블을 조회하여 노드가 inner 노드인지, root 노드인지, leaf 노드인지 구별할 수 있어야 합니다.

-  p값이 null이면 부모가 없다는 의미이므로 p값이 null 인경우 root 노드입니다.

- 특정 n의 값과 같은 값을 가지는 P가 있으면 inner 노드입니다.

- 2가지 경우가 아니라면 leaf 노드입니다.

 

SELECT N, (CASE 
                WHEN P IS NULL THEN 'Root'
                WHEN N IN (SELECT P FROM BST) THEN 'Inner'
                ELSE 'Leaf'
            END) AS 'Type'
FROM BST
ORDER BY N

새로 배운 것

CASE 문

CASE
	WHEN 조건식 THEN '반환값'
    WHEN 조건식 THEN '반환값'
    ELSE '반환값'
END

IN조건

조건 값이 여러 개 일 때 사용한다. 안에 SELECT 문을 넣을 수도 있다.

 

WHERE N IN (1, 2, 3) // N이 1또는 2또는 3인가?

 

 

Comments