율코딩

[MySQL/HackerRank] Ollivander's Inventory 문제풀이 본문

SQL/HackerRank

[MySQL/HackerRank] Ollivander's Inventory 문제풀이

레아킴 2022. 5. 22. 00:29
반응형

https://www.hackerrank.com/challenges/harry-potter-and-wands/problem

 

Ollivander's Inventory | HackerRank

Help pick out Ron's new wand.

www.hackerrank.com

 

 

생각보다 문제가 복잡하고 어려웠다. 

 

일단, 먼저 문제를 정리를 해보면

  1.   is_evil = 0이어야 한다.
  2.  age 와 power가 같은 것들 중에 가장 coin_needed가 작은 wand를 골라야한다.

 

SELECT W.id, 
        P.age, 
        W.coins_needed, 
        W.power
FROM Wands W
 INNER JOIN Wands_Property P ON W.code = P.code
WHERE P.is_evil = 0
AND W.coins_needed = (SELECT MIN(W1.coins_needed)
                      FROM Wands W1
                       INNER JOIN Wands_Property P1 ON W1.code = P1.code
                      WHERE P1.is_evil = 0 
                      AND W1.power = W.power
                      AND P1.age = P.age)
ORDER BY W.power DESC, P.age DESC

WHERE절에 서브쿼리는 넣는 방식으로 풀었다.

WHERE 절에서 메인 쿼리절과 age와 power가 같은 데이터에 매핑 되도록 조인을 해서 가장 coins_needed가 작은 데이터와 같도록 조건을 주었다.

 

 

반응형
Comments