Allen's 데이터 맛집
HackerRank lv. Medium : Ollivander's Inventory 본문
문제
풀이
SELECT
w.id,
p.age,
w.coins_needed,
w.power
FROM Wands AS w
JOIN Wands_Property AS p ON (w.code = p.code)
WHERE
p.is_evil = 0 AND w.coins_needed =
(SELECT MIN(coins_needed)
FROM Wands AS w1 JOIN Wands_Property AS p1 ON (w1.code = p1.code)
WHERE w1.power = w.power AND p1.age = p.age
)
ORDER BY
w.power DESC, p.age DESC
1. FROM 절과 JOIN 사용: Wands 테이블과 Wands_Property 테이블을 조인하여 마법 지팡이의 속성과 가격 정보를 결합합니다.
2. WHERE 절 조건: 악하지 않은(p.is_evil = 0) 마법 지팡이 중에서 각 지팡이의 파워와 나이에 따른 최소 동전 수를 필요로 하는 지팡이만을 선택합니다.
3. 서브쿼리를 사용한 최소값 필터링: 각 지팡이의 파워와 나이 조합에 대해 필요한 최소 동전 수(coins_needed)를 찾아서, 해당하는 지팡이만을 결과에 포함시킵니다.
4. ORDER BY 절: 파워(power)에 대해 내림차순으로 정렬하고, 파워가 같을 경우 나이(age)에 대해 내림차순으로 정렬하여 출력합니다.
https://www.hackerrank.com/challenges/harry-potter-and-wands/problem?isFullScreen=false