SQL

Ollivander's Inventory

sawo11 2025. 5. 6. 02:58

문제 풀이 링크: https://www.hackerrank.com/challenges/harry-potter-and-wands/problem?isFullScreen=true

 

Ollivander's Inventory | HackerRank

Help pick out Ron's new wand.

www.hackerrank.com


 🧙🏻‍♀️ 문제 요약

  • (power, age) 조합에 대해 가장 적은 coins_needed인 wand만 고르기
  • 비-사악한(wands_property.is_evil = 0) 것만 고려
  • 최종적으로 출력할 열: id, age, coins_needed, power
  • 정렬: power 내림차순, power가 같으면 age 내림차순

SELECT w.id,
    wp.age,
    w.coins_needed,
    w.power
FROM wands w
JOIN wands_property wp
    ON w.code = wp.code
JOIN (
    SELECT w2.power, 
        wp2.age,
        MIN(w2.coins_needed) min_coins
    FROM wands w2
    JOIN wands_property wp2
        ON w2.code = wp2.code
    WHERE wp2.is_evil = 0
    GROUP BY w2.power, wp2.age
    ) mw
    ON w.power = mw.power
        AND wp.age = mw.age
        AND w.coins_needed = mw.min_coins
ORDER BY w.power DESC,
    wp.age DESC;