๋ฌธ์ ์ค๋ช
๋ง์ธ์ ๊ณก๊ดญ์ด๋ก ๊ด์ฐ์์ ๊ด์์ ์บ๋ ค๊ณ ํฉ๋๋ค. ๋ง์ธ์ ๋ค์ด์๋ชฌ๋ ๊ณก๊ดญ์ด, ์ฒ ๊ณก๊ดญ์ด, ๋ ๊ณก๊ดญ์ด๋ฅผ ๊ฐ๊ฐ 0๊ฐ์์ 5๊ฐ๊น์ง ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๊ณก๊ดญ์ด๋ก ๊ด๋ฌผ์ ์บ ๋๋ ํผ๋ก๋๊ฐ ์๋ชจ๋ฉ๋๋ค. ๊ฐ ๊ณก๊ดญ์ด๋ก ๊ด๋ฌผ์ ์บ ๋์ ํผ๋ก๋๋ ์๋ ํ์ ๊ฐ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฒ ๊ณก๊ดญ์ด๋ ๋ค์ด์๋ชฌ๋๋ฅผ ์บ ๋ ํผ๋ก๋ 5๊ฐ ์๋ชจ๋๋ฉฐ, ์ฒ ๊ณผ ๋์ ์บ๋๋ ํผ๋ก๋๊ฐ 1์ฉ ์๋ชจ๋ฉ๋๋ค. ๊ฐ ๊ณก๊ดญ์ด๋ ์ข
๋ฅ์ ์๊ด์์ด ๊ด๋ฌผ 5๊ฐ๋ฅผ ์บ ํ์๋ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง์ธ์ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ ์งํค๋ฉด์ ์ต์ํ์ ํผ๋ก๋๋ก ๊ด๋ฌผ์ ์บ๋ ค๊ณ ํฉ๋๋ค.
- ์ฌ์ฉํ ์ ์๋ ๊ณก๊ดญ์ด์ค ์๋ฌด๊ฑฐ๋ ํ๋๋ฅผ ์ ํํด ๊ด๋ฌผ์ ์บก๋๋ค.
- ํ ๋ฒ ์ฌ์ฉํ๊ธฐ ์์ํ ๊ณก๊ดญ์ด๋ ์ฌ์ฉํ ์ ์์ ๋๊น์ง ์ฌ์ฉํฉ๋๋ค.
- ๊ด๋ฌผ์ ์ฃผ์ด์ง ์์๋๋ก๋ง ์บ ์ ์์ต๋๋ค.
- ๊ด์ฐ์ ์๋ ๋ชจ๋ ๊ด๋ฌผ์ ์บ๊ฑฐ๋, ๋ ์ฌ์ฉํ ๊ณก๊ดญ์ด๊ฐ ์์ ๋๊น์ง ๊ด๋ฌผ์ ์บก๋๋ค.
์ฆ, ๊ณก๊ดญ์ด๋ฅผ ํ๋ ์ ํํด์ ๊ด๋ฌผ 5๊ฐ๋ฅผ ์ฐ์์ผ๋ก ์บ๊ณ , ๋ค์ ๊ณก๊ดญ์ด๋ฅผ ์ ํํด์ ๊ด๋ฌผ 5๊ฐ๋ฅผ ์ฐ์์ผ๋ก ์บ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ, ๋ ์ฌ์ฉํ ๊ณก๊ดญ์ด๊ฐ ์๊ฑฐ๋ ๊ด์ฐ์ ์๋ ๋ชจ๋ ๊ด๋ฌผ์ ์บ ๋๊น์ง ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด ๋ฉ๋๋ค.
๋ง์ธ์ด ๊ฐ๊ณ ์๋ ๊ณก๊ดญ์ด์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด picks์ ๊ด๋ฌผ๋ค์ ์์๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด minerals๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ง์ธ์ด ์์
์ ๋๋ด๊ธฐ๊น์ง ํ์ํ ์ต์ํ์ ํผ๋ก๋๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- picks๋ [dia, iron, stone]๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- 0 ≤ dia, iron, stone ≤ 5
- dia๋ ๋ค์ด์๋ชฌ๋ ๊ณก๊ดญ์ด์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- iron์ ์ฒ ๊ณก๊ดญ์ด์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- stone์ ๋ ๊ณก๊ดญ์ด์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- ๊ณก๊ดญ์ด๋ ์ต์ 1๊ฐ ์ด์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- 5 ≤ minerals์ ๊ธธ์ด ≤ 50
- minerals๋ ๋ค์ 3๊ฐ์ ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ๊ฐ๊ฐ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- diamond : ๋ค์ด์๋ชฌ๋
- iron : ์ฒ
- stone : ๋
์ ์ถ๋ ฅ ์
picks | minerals | result |
[1, 3, 2] | ["diamond", "diamond", "diamond", "iron", "iron", "diamond", "iron", "stone"] | 12 |
[0, 1, 1] | ["diamond", "diamond", "diamond", "diamond", "diamond", "iron", "iron", "iron", "iron", "iron", "diamond"] | 50 |
์ ์ถ๋ ฅ ์ ์ค๋ช
- ์
์ถ๋ ฅ ์ #1
- ๋ค์ด์๋ชฌ๋ ๊ณก๊ดญ์ด๋ก ์์ ๋ค์ฏ ๊ด๋ฌผ์ ์บ๊ณ ์ฒ ๊ณก๊ดญ์ด๋ก ๋จ์ ๋ค์ด์๋ชฌ๋, ์ฒ , ๋์ 1๊ฐ์ฉ ์บ๋ฉด 12(1 + 1 + 1 + 1+ 1 + 5 + 1 + 1)์ ํผ๋ก๋๋ก ์บ ์ ์์ผ๋ฉฐ ์ด๋๊ฐ ์ต์๊ฐ์ ๋๋ค.
- ์
์ถ๋ ฅ ์ #2
- ์ฒ ๊ณก๊ดญ์ด๋ก ๋ค์ด์๋ชฌ๋ 5๊ฐ๋ฅผ ์บ๊ณ ๋ ๊ณก๊ดญ์ด๊ณ ์ฒ 5๊ฐ๋ฅผ ์บ๋ฉด 50์ ํผ๋ก๋๋ก ์บ ์ ์์ผ๋ฉฐ, ์ด๋๊ฐ ์ต์๊ฐ์ ๋๋ค.
ํ์ด
- ๋ฌธ์ ๋ธ ์ฌ๋์ด ๋ง์ธํฌ๋ํํธ ์ข์ํ๋ ๊ฑฐ ๊ฐ๋ค? ใ
ใ
ใ
- ์ ๋ ฅ ๋ฐ์ดํฐ๋ก๋ ๊ณก๊ฐฑ์ด ์ข ๋ฅ๋ณ(dia,iron,stone) ๊ฐฏ์
- ์ง๋ฌธ์ ์๋ ๊ณก๊ฐฑ์ด์ ๊ด๋ฌผ ์กฐํฉ ํผ๋ก๋.
- ๊ทธ๋ฆฌ๊ณ ๊ณก๊ฐฑ์ด๋ ๊ด๋ฌผ 5๊ฐ๋ฅผ ์บ๊ณ ํ๊ดด๋๋ค. ์ค๊ฐ์ ๋ฐ๊ฟ ์ ์๋ค.
- ์ฆ, ๊ด๋ฌผ์ ์์๋ฅผ 5๊ฐ์ฉ ๋๋ ์ ๊ณก๊ฐฑ์ด ๊ฐฏ์๋งํผ๋ง ํผ๋ก๋๋ฅผ ๊ณ์ฐํด๋ณด๊ณ
- ์ ์ผ ํผ๋ก๋๊ฐ ์ ์ ์์๋ก ๊ณก๊ฐฑ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
- ์
์ถ๋ ฅ ์์ ๋ก ๋ง๋ ํ๋ฒ ํด๋ณด์.
- ์ ์ถ๋ ฅ ์1 : ๋ค+๋ค+๋ค+์ฒ +์ฒ | ๋ค+์ฒ +๋
- ์์ ๋ค์ด์๋ชฌ๋ 3๊ฐ+์ฒ 2๊ฐ, ๋ค์๋ ๋ค์ด์/์ฒ /๋ 1๊ฐ์ฉ
- ๊ณก๊ฐฑ์ด 2๊ฐ ์๋ชจ๋๋๋ฐ ์ด๋ค ๊ณก๊ฐฑ์ด๋ฅผ ์จ์ผ๋๋?
- ๋ค์ด์๋ชฌ๋๋ ๋ค์ด์, ๋ค์ฒ ๋๋ ๋ค์ด์.
- ๊ทผ๋ฐ ๊ณก๊ฐฑ์ด ๊ฐฏ์๊ฐ 1,3,2๋ผ์ ๋ค์ด์๋ ํ๋ฒ๋ง ์ธ ์ ์๋ค.
- ๋ค์ด์๊ฐ ์ ์ผ ๋ง์ ๊ณณ์ ๋ค์ด์ ๊ณก๊ฐฑ์ด ์ฌ์ฉ.
- ๊ทธ ๋ค์ ์ฒ ์ด ๋ง์ ๊ณณ์ ์ฒ ๊ณก๊ฐฑ์ด ์ฌ์ฉ, ๋๋จธ์ง์ ๋ ๊ณก๊ฐฑ์ด ์ฌ์ฉํ๋ฉด ๋ ๋ฏ.
- ๊ทธ๋ฆฌ๊ณ ์ด๊ฑฐ ๋ฐฐ์ด๋ก ๋ง๋ค์ด๋์ผ๋๋?
- arr[] = [ [1][1][1] ] , [ [5][1][1] ] , [ [25][5][1] ]
- ๊ทธ๋ฅ ์ ๋ ฅ ๋ฐ์ดํฐ์ ๋ค์ด์๋ชฌ๋์ ์ฒ , ๋์ 25,5,1๋ก ๋ฐ๊ฟ์ผ๊ฒ ๋ค.
- ๊ทธ ๋ด์ ์ฒ ์ /5ํ๊ณ , ๋ค์ด์๋ /5/5ํ๋ฉด ๋์์...
- ๊ณก๊ฐฑ์ด ํฉ์ฐ์ผ๋ก ๊ด๋ฌผ ๋ฐฐ์ด ์๋ฅด๊ธฐ๋ถํฐ...
- 5๊ฐ์ฉ ์๋ผ์ sub_total์ด ์ ์ผ ํฐ ๋๋ถํฐ ๋ค์ด์๋ชฌ๋ ๊ณก๊ฐฑ์ด > ์ฒ ๊ณก๊ฐฑ์ด > ๋ ๊ณก๊ฐฑ์ด ์์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋๋ฐ... ๊ท์ฐฎ๋ค;
def solution(picks, minerals):
total_fatigability = 0
answer = []
sub_total = {}
s = sum(picks)
minerals = minerals[:s*5]
mod = len(minerals) % 5
if mod != 0:
for i in range(5-mod):
minerals.append('null')
for m in minerals:
if m == 'diamond':
answer.append(25)
elif m == 'iron':
answer.append(5)
elif m == 'stone':
answer.append(1)
else:
answer.append(0)
for i in range(len(answer)//5):
_tmp = 0
for j in range(5):
_tmp += answer[i*5+j]
sub_total[i] = _tmp
sorted_dict = sorted(sub_total.items(), key= lambda item:item[1], reverse=True)
for sd in sorted_dict:
if picks[0]>0:
picks[0] -= 1
fatigability = 25
elif picks[1]>0:
picks[1] -= 1
fatigability = 5
else:
picks[2] -= 1
fatigability = 1
for j in range(5):
if answer[sd[0]*5+j] != 0:
_t = answer[sd[0]*5+j] // fatigability
if _t < 1:
_t = 1
total_fatigability += _t
return total_fatigability
- ๋ชฐ๋ผ ๋์ถฉ ํ์๋ค. ใ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค LV0 ์ ์๋ฅผ ๋์ ํ์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2023.06.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค์ Problem Solving ํ๊ฐ ๋ฆฌํฌํธ๋๊ฒ ์๊ฒผ๋ค. (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV2 ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV1 ๊ณต์ ์ฐ์ฑ (0) | 2023.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค LV1 ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2023.06.23 |