[HackerRank] Binary Tree Nodes

주연·2023년 4월 17일
0

SQL 문제 풀이

목록 보기
22/28
post-thumbnail

문제

https://www.hackerrank.com/challenges/binary-search-tree-1/problem

풀이

ㅋ......다 풀었는데 어이없는 실수 하나랑 개념을 제대로 알지 못해 틀렸다.

  • 어이없는 실수는 CASE WHEN 구문인데
CASE WHEN ..
     WHEN ..

이런 식으로 작성해야하는데

CASE WHEN ..
CASE WHEN ..

CASE를 또 씀....그러니 당연히 오류가 나지.......

  • 개념 문제는 IN / NOT IN 문제

IN의 경우 서브쿼리의 결과로 나온 값들 중 일치하는 값이 하나라도 있으면 된다.
그러나 NOT IN은 서브쿼리의 결과로 나온 모든 값들과 일치하지 않는지를 체크하게 된다.

이래서 다 풀고도 틀렸다.

  • 내가 작성한 답(틀림)
SELECT N
    , CASE WHEN P IS NULL THEN 'Root'
           WHEN N NOT IN (SELECT DISTINCT P FROM BST) THEN 'Leaf'
           ELSE 'Inner' 
      END
FROM BST b
ORDER BY N

-> 이렇게 하면 Leaf 값이 적절하게 나오지 않음. Root아님 전부 Inner로 나온다.


  • 풀이 확인
SELECT N
    , CASE WHEN P IS NULL THEN 'Root'
           WHEN N IN (SELECT DISTINCT P FROM BST) THEN 'Inner'
           ELSE 'Leaf' 
      END
FROM BST b
ORDER BY N
profile
공부 기록

0개의 댓글