Lv2 - 업그레이드 된 아이템 구하기

2025. 7. 30. 18:59·CODING TEST/MySQL

📌 문제 정보

- 문제 이름 : 프로그래머스 - (SELECT) 업그레이드 된 아이템 구하기

- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/273711

 

 

 

📌 문제 요약

- ITEM_INFO 테이블 : ITEM_ID, ITEM_NAME, RARITY, PRICE

- ITEM_TREE 테이블 : ITEM_ID, PARENT_ITEM_ID

'ITEM_A'->'ITEM_B'->'ITEM_C'와 같이 업그레이드가 가능한 아이템이 있다면
'ITEM_C'의 PARENT 아이템은 'ITEM_B' , 'ITEM_B'의 PARENT 아이템은 'ITEM_A'
ROOT 아이템은 'ITEM_A'가 됩니다.

- 아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요.

 

예시)

ITEM_ID  ITEM_NAME  RARITY  PRICE
0 ITEM_A RARE 10000
1 ITEM_B RARE 9000
2 ITEM_C LEGEND 11000
3 ITEM_D RARE 10000
4 ITEM_E RARE 12000

 

ITEM_ID  PARENT_ITEM_ID
0 NULL
1 0
2 0
3 1
4 1

 

출력)

ITEM_ID  ITEM_NAME  RARITY
4 ITEM_E RARE
3 ITEM_D RARE
2 ITEM_C LEGEND
1 ITEM_B RARE

 

 

 

📌 내 풀이 및 코드

SELECT 
    t.ITEM_ID, 
    i.ITEM_NAME, 
    i.RARITY
FROM 
    ITEM_TREE t
JOIN 
    ITEM_INFO i ON t.ITEM_ID = i.ITEM_ID
WHERE 
    t.PARENT_ITEM_ID IN (
        SELECT ITEM_ID 
        FROM ITEM_INFO 
        WHERE RARITY = 'RARE'
    )
ORDER BY 
    t.ITEM_ID DESC;

- 처음에 코드를 PARENT_ITEM_ID = 'RARE' ← 이런식으로 썼는데 PARENT_ITEM_ID = 'RARE' 처럼 희귀도(RARITY)랑 ID를 잘못 비교했기 때문에 계속 오류가 났었음.

  • PARENT_ITEM_ID는 숫자 (아이템 ID) / 'RARE'는 문자열 (희귀도)
  • 즉, 숫자와 문자열을 비교하고 있어서 조건이 항상 거짓이 됨.

=> 답은 맞지만, 단점은 "자식의 자식의 자식"까지는 못 찾고, 오직 한 단계 자식만 찾는다는 한계가 있음.

 

 

📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->

- .

'CODING TEST > MySQL' 카테고리의 다른 글

Lv2 - 조건에 맞는 사원 정보 조회하기  (0) 2025.08.01
Lv2 - 조건에 맞는 개발자 찾기  (0) 2025.07.30
Lv2 - 자동차 평균 대여 기간 구하기  (0) 2025.07.29
Lv2 - ROOT 아이템 구하기  (0) 2025.07.29
Lv2 - 가격대 별 상품 개수 구하기  (0) 2025.07.29
'CODING TEST/MySQL' 카테고리의 다른 글
  • Lv2 - 조건에 맞는 사원 정보 조회하기
  • Lv2 - 조건에 맞는 개발자 찾기
  • Lv2 - 자동차 평균 대여 기간 구하기
  • Lv2 - ROOT 아이템 구하기
iamyuunzo
iamyuunzo
https://github.com/iamyuunzo
  • iamyuunzo
    iamyuunzo
    iamyuunzo
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Study (5)
        • App Developer (0)
        • Algorithm study (0)
        • Google AI Essentials (3)
      • Project (3)
        • 감행 (3)
        • Tokkit (0)
        • 다시, 봄 (0)
        • Clone Coding (0)
      • 자격증 모음 (5)
        • AWS Certification (1)
        • 정보처리기사 (0)
        • 빅데이터분석기사 (1)
        • TOEIC Speaking (3)
      • CODING TEST (79)
        • baekjoon (26)
        • programmers (20)
        • MySQL (31)
        • COS Pro (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    AWS Certification
    Programmers
    COS Pro
    CLF-C02
    우리fis아카데미
    프로젝트 리팩토링
    백준
    java
    감행
    우리fisa
    회고록
    클라우드서비스개발
    toeic speaking
    SQL
    AWS Certified Cloud Practitioner
    우리 fisa
    토익 스피킹
    회고
    baekjoon
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
iamyuunzo
Lv2 - 업그레이드 된 아이템 구하기
상단으로

티스토리툴바