Growth ๐ŸŒณ/Practice ๐Ÿ’ป

[Hacker Rank] Ollivander's Inventory

์ธ” 2022. 8. 26. 19:25

๐Ÿ“ข ๋ณธ ํฌ์ŠคํŒ…์— ํ™œ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ฌธ์ œ ๋ฐ ์ž๋ฃŒ ์ถœ์ฒ˜๋Š” HackerRank ์ž„์„ ๋ฐํž™๋‹ˆ๋‹ค.

https://www.hackerrank.com


โ–  ๋ฌธ์ œ

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

 

Ollivander's Inventory | HackerRank

Help pick out Ron's new wand.

www.hackerrank.com

 


โ–  ํ’€์ด

๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ

 

Hermione decides the best way to choose is by determining the minimum number of gold galleons needed to buy each non-evil wand of high power and age.

> ์ตœ์†Œ ๊ฐค๋Ÿฐ์œผ๋กœ ์‚ด ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ€์žฅ ๋†’์€ power์™€ age์— non-eveil์ธ ๊ฒƒ์„ ์‚ฌ๊ณ ์ž ํ•จ.

 

SELECT W2.id, WP.age, W.coins_needed, W.power
 FROM(
        SELECT code, min(coins_needed) coins_needed, power
         FROM Wands
         GROUP BY code, power) W
         
INNER JOIN Wands_Property WP
ON W.code = WP.code

INNER JOIN Wands W2
ON W.code = W2.code
AND W.coins_needed = W2.coins_needed
AND W.power = W2.power

WHERE WP.is_evil = 0
ORDER BY power DESC, age DESC;

 

์ง€ํŒก์ด๋ณ„๋กœ gold galleons์ด ๊ฐ€์žฅ ๋‚ฎ์€(๊ฐ€์žฅ ์ €๋ ดํ•œ) ์ง€ํŒก์ด๋ฅผ ๋ฝ‘์œผ๋ ค๋ฉด, code์™€ power์— ๋Œ€ํ•ด ๊ทธ๋ฃนํ•‘ํ•ด์ค˜์•ผํ•˜๋Š”๋ฐ

id ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ๋ฃนํ•‘์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. (Wands์—์„œ id๋Š” ๊ณ ์œ ๊ฐ’)

 

์šฐ์„  ์ตœ์†Œ ๊ฐค๋Ÿฐ๊ฐ’์ธ ์ง€ํŒก์ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด code์™€ power์— ๋Œ€ํ•ด ๊ทธ๋ฃนํ•‘ํ•˜์—ฌ ์ถœ๋ ฅํ•ด์ค€๋‹ค 

> Wands

 

Join 

minimum gold galleons ์ธ ์ง€ํŒก์ด์˜ id๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์˜ Wํ…Œ์ด๋ธ”์ธ W2์™€ inner join ํ•ด์ฃผ๋Š”๋ฐ

id๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ๋งค์นญ๋˜๋„๋ก code, coin_needed, power๋ฅผ join ์กฐ๊ฑด์— ๋ชจ๋‘ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

minimum gold galleons ์ธ ์ง€ํŒก์ด๋Š” same power๋ผ๋ฉด descending age๋ฅผ ์šฐ์„ ์‚ฌํ•ญ์œผ๋กœ ๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— age์ •๋ณด๊ฐ€ ์žˆ๋Š” Wands_property ํ…Œ์ด๋ธ” WP์™€๋„ inner join ํ•ด์ค€๋‹ค.

๊ณตํ†ต์ปฌ๋Ÿผ์€ code

 

Where : ์ „์ฒด ์กฐ๊ฑด

 ์ด๋ ‡๊ฒŒ ๋˜๋ฉด minimum gold galleons ์„ ๊ฐ–๋Š” ์ง€ํŒก์ด์˜ id, age, coins_needed, power ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํ—ค๋ฅด๋ฏธ์˜จ๋Š๊ฐ€ ์š”๊ตฌํ–ˆ๋˜ ์ง€ํŒก์ด์˜ ๋‚จ์€ ์กฐ๊ฑด non-evil

non-evil์€ WP ํ…Œ์ด๋ธ”์— ์žˆ์œผ๋ฏ€๋กœ where์ ˆ์— ์กฐ๊ฑด์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

Order by : ์ •๋ ฌ

๋งˆ์ง€๋ง‰์œผ๋กœ ์š”๊ตฌ์‚ฌํ•ญ์˜ ์„ ํƒ ์ˆœ์œ„์— ๋”ฐ๋ผ power ๊ฐ€ ํฐ ์ˆœ์„œ๋Œ€๋กœ, same power๋ผ๋ฉด age ์ˆœ์„œ๋Œ€๋กœ ๋ชฉ๋ก์ด ํ•„์š”ํ–ˆ์œผ๋ฏ€๋กœ

ORDER BY power DESC, age DESC ํ•ด์ฃผ์–ด ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ์ง€ํŒก์ด ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

๐Ÿ“Œ

minimum gold galleons ์˜ ์ง€ํŒก์ด๋“ค์„ ์ฐพ์€ ํ›„์— ์ด๊ฒƒ์˜ id๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ์›๋ž˜ ํ…Œ์ด๋ธ”๊ณผ ์กฐ์ธํ•˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด๋‚ด๊ธฐ ์–ด๋ ค์› ๋‹ค..

'Growth ๐ŸŒณ > Practice ๐Ÿ’ป' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Hacker Rank] Placement  (0) 2022.08.27
[Hacker Rank] Top Competitors  (0) 2022.08.27
[LeetCode] 176. Second Highest Salary  (0) 2022.08.26
[LeetCode] 1179. Reformat Department Table  (0) 2022.08.26
[LeetCode] 262. Trips and Users  (0) 2022.08.26