Road to Data Scientist

[프로그래머스] ROOT 아이템 구하기 Lv.2 본문

코딩 테스트/SQL

[프로그래머스] ROOT 아이템 구하기 Lv.2

ShazelP 2024. 6. 21. 15:53

ROOT 아이템 구하기

 

테이블

- ITEM_ID: 아이템 아이디
- ITEM_NAME: 아이템 명
- RARITY: 희귀도
- PRICE: 아이템 가격
- ITEM_ID: 아이템 아이디
- PARENT_ITEM_ID: PARENT 아이템 아이디

 

문제

어느 한 게임에서 사용되는 아이템들은 업그레이드가 가능합니다. 'ITEM_A'->'ITEM_B'와 같이 업그레이드가 가능할 때 'ITEM_A'를 'ITEM_B'의 PARENT 아이템, PARENT 아이템이 없는 아이템을 ROOT 아이템이라고 합니다.

예를 들어 'ITEM_A'->'ITEM_B'->'ITEM_C' 와 같이 업그레이드가 가능한 아이템이 있다면 'ITEM_C'의 PARENT 아이템은 'ITEM_B' 'ITEM_B'의 PARENT 아이템은 'ITEM_A'

 

ROOT 아이템은 'ITEM_A'가 됩니다.ROOT 아이템을 찾아 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME)을 출력하는 SQL문을 작성해 주세요. 이때, 결과는 아이템 ID를 기준으로 오름차순 정렬해 주세요.

 

정답예시

 

코드

SELECT A.ITEM_ID, A.ITEM_NAME
FROM ITEM_INFO A
JOIN ITEM_TREE B
ON A.ITEM_ID = B.ITEM_ID
WHERE PARENT_ITEM_ID IS NULL

 

설명

1. ITEM_INFO 테이블을 ITEM_TREE 테이블과 ITEM_ID 를 기준으로 JOIN 

2. JOIN 된 테이블에서 ITEM_ID, ITEM_NAME 을 추출하는데

3. ROOT 아이템 즉, PARENT 아이템 아이디가 없는 값을 추출해야 하므로 WHER PARENT_ITEM_ID IS NULL

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/273710

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr