코딩테스트/SQL

[SQL][ISNULL, IN] 업그레이드 할 수 없는 아이템 구하기

박소민 2024. 11. 15. 16:53
업그레이드 할 수 없는 아이템 구하기
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

  • 풀이
    • 누군가의 부모가 아닌 ITEM들 = 더이상 업그레이드 불가능한 마지막 아이템
      • 왜냐면 부모 -> 자식 으로 업그레이드 하는데
      • A -> B-> C에서 더이상 C가 없는 B는 업그레이드 불가능
    • 그러므로 누군가의 부모인 아이템들을 뽑아서 거기에 NOT IN 하는 애들만 골라다가 출력
SELECT I.ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO I
JOIN ITEM_TREE T
ON I.ITEM_ID=T.ITEM_ID
WHERE I.ITEM_ID NOT IN
    (SELECT PARENT_ITEM_ID
    FROM ITEM_TREE
    WHERE PARENT_ITEM_ID IS NOT NULL)
ORDER BY 1 DESC