PGS / ๊ด๋ฌผ ์บ๊ธฐ / Python
Updated:
ํ๋ฉด์
โ
๊ด๋ฌผ์ ์์๋ฅผ ๋ฐ๊ฟ ์๋ ์์ผ๋ ํ๋ฒ ์ฑ๊ตด ์์ ์ ๋ฌด์กฐ๊ฑด 5๊ฐ๋ ์ฑ๊ตดํด์ผ ํ๋ค. ์ฆ, 5๊ฐ๋ก ๋ฌถ์ chunk๋ค์ ๋ํ ์ฌ์ ๋ ฌ์ ๊ฐ๋ฅํ๋ค.
โ
์ ์ฒด ๊ด๋ฌผ์ 5๊ฐ์ ๋จ์๋ก ์๋ฅด๊ณ , ๊ฐ ์ฒญํฌ ๋ด์์ ๋ค์ด์ -> ์ฒ -> ๋ ์ ์์๋ก ์ ์ ์ฐจ๋ฅผ ๋ฌ์ ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฒญํฌ๋ค์ ์ ๋ ฌํ๋ค.
โ
์ ๋ ฌ๋ ์ฒญํฌ๋ค์ ๋ํด์๋ ๋จ์ํ ๋ค์ด์ -> ์ฒ -> ๋ ๊ณก๊ดญ์ด ์์๋ก ์ฑ๊ตด์ ์งํํ๋ฉด ์ต์ ํผ๋ก๋๊ฐ ๋์ ๋๋ค.
</br>
ํด๊ฒฐ ์ฝ๋1
def solution(picks, minerals):
answer = 0
end = min(sum(picks)*5, len(minerals))
minerals_to_num = []
# ๊ด๋ฌผ๋ค 5๊ฐ ๋จ์๋ก ์๋ฅด๊ธฐ
for i in range(0, end, 5):
if i+5 > end:
minerals_ = minerals[i:]
else:
minerals_ = minerals[i:i+5]
d, i, s = minerals_.count("diamond"), minerals_.count("iron"), minerals_.count("stone")
minerals_to_num.append([d, i, s])
minerals_to_num.sort(key = lambda x : (-x[0], -x[1]))
for m in (minerals_to_num):
if picks[0] > 0:
picks[0] -= 1
answer += sum(m)
elif picks[1] > 0:
picks[1] -= 1
answer += (m[0]*5 + m[1]*1 + m[2]*1)
else:
picks[2] -= 1
answer += (m[0]*25 + m[1]*5 + m[2]*1)
return answer
Leave a comment