์ฐธ๊ณ ) ์ด๊ฒ์ด ์ทจ์
์ ์ํ ์ฝ๋ฉํ
์คํธ๋ค with ํ์ด์ฌ ์ฑ
์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๋ฌธ์ ์ ์ฝ๋์
๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์ ๋ ์์ธํ๊ฒ ์ ์ง ์๊ณ , ๊ฐ๋จํ ์ค๋ช
๊ณผ ์ ์ฝ๋๋ง ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค.
http://www.yes24.com/Product/Goods/91433923
์ค์ ๋ฌธ์ (1) ํฐ ์์ ๋ฒ์น
๋ค์ํ ์๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ด ์์ ๋, ์ฃผ์ด์ง ์๋ค์ M๋ฒ ๋ํ์ฌ ๊ฐ์ฅ ํฐ์๋ฅผ ๋ง๋ค์ด ๋ณด์๋ผ.
(๋จ, K๋ฒ์ ์ด๊ณผํด์ ๋ํ ์ ์๋ค)
์
๋ ฅ์ N M K
N: ๋ฐฐ์ด์ ํฌ๊ธฐ
M: ์ซ์๊ฐ ๋ํด์ง๋ ํ์
K: ์ฃผ์ด์ง๋ ์ (K๋ ํญ์ M๋ณด๋ค ์๋ค)
<์
๋ ฅ ์์>
5 8 4
2 4 5 4 6
<์ถ๋ ฅ ์์>
46
<๋ฌธ์ ํ์ด>
1. ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ฐพ์์ K๋ฅผ ๊ณฑํ๋ค (K๋ฒ ๋ํด์ฃผ๋ ๊ฒ ์ด๋ฏ๋ก)
2. ๊ทธ๋ผ ๋ํ ํ์ count๋ k๊ฐ ๋๋ค.
3. ๋๋ฒ์งธ๋ก ํฐ ์๋ฅผ 1๋ฒ ๋ํด์ค๋ค.
4. ๊ทธ๋ผ ๋ํ ํ์ count๋ k + 1์ด ๋๋ค.
5. ํ์ฌ์ count๊ฐ M๋ณด๋ค ์์ผ๋ฉด, ๊ณผ์ ์ ๋ฐ๋ณตํด์ ๋ํด์ฃผ๊ณ , ๊ฐ์ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๋ค.
<๋ด๊ฐ ํผ ์ฝ๋>
๋๋ sort()๋ฅผ ํ์ฉํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ฆฌ๋ฅผ ํด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ํฐ ์์ ๋ ๋ฒ์งธ๋ก ํฐ ์๋ฅผ ๋ํด๊ฐ๋ ๊ณผ์ ์ด๊ธฐ์, ํ์ํ ์ซ์๊ฐ ๋ฑ ๋๊ฐ ์ธ ๋งํผ, num1๊ณผ num2์ ์ ์ฅํด๋ ์ฑ๋ก ํ์ฉํ๋ค.
def solution(N, M, K):
N.sort()
total = 0
num1 = N.pop()
num2 = N.pop()
max_k = 1
for i in range(0, M):
if max_k <= K:
total += num1
max_k += 1
else: # K๊ฐ ๋์ด๊ฐ๋ฉด
max_k = 1 #max_k๋ฅผ ์ด๊ธฐํ ์์ผ์ค
total += num2
return total
์ถ๋ ฅ)
N = [4,3,4,6,9,10] #์ฐจ์
M = 5 #๋ํด์ง๋ ํ์
K = 2 #์ฐ์ ์ต๋ ๋ช๋ฒ?
solution(N, M, K)
<์์ ์ฝ๋์ ๋น๊ต>
- pop()์ ํ์ฉํ์ฌ ์ ๋ ฌ๋ ๊ฐ๋ค ์ค ๋งจ ์ค๋ฅธ์ชฝ์ ์๋ ๊ฐ์ ๊บผ๋๋ค. pop๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ list[N-1], list[N-2] ์ฒ๋ผ ์ธ๋ฑ์ค๋ก ์ฐพ๋ ๋ฐฉ๋ฒ๋ ์๋ค. (N์ฐจ์์ด๋๊น, N-1์ด ๊ฐ์ฅ ๋์ ์๋ ์๊ฒ ์ง?
- ๋๋ max_k๋ผ๋ ๋ณ์๋ฅผ ๋๊ณ +1 ์ฉ ๋ํด๊ฐ๋ฉด์ K์ ๊ฐ์ ๋น๊ตํด๊ฐ๋ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ค. (๋ฐ๋ณต๋ฌธ์ ์ด M๋ฒ ๋์๊ฐ๊ฒ ๋ง๋ฆ)
- ๋ฐ๋ฉด์ ์์ ์ฝ๋๋, while == True ๋ฌธ์ ํ์ฉํ์ฌ ๋ฌดํ๋๋ก ๋๊ฒ ๋ง๋ค๊ณ , ๊ณ์ฐ์ ํ๋ฒ์ฉ ๋๋๋ง๋ค M ์์ -1 ์ฉ ๋บด์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ M ==0 ์ด ๋๋ ์๊ฐ์ break ํ๋ฉด์ while๋ฌธ์ ํ์ถํ๋ค.
- ์ด๋ฒ ์ฝ๋๋ ์ด๋ค๊ฒ ๋ ๋ซ๋ค ๋ผ๊ณ ๋ณผ๋งํ ๊ฒ ์๋ค. ์ด์จ๋ , ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ๊ฒ๋ ๊ฐ๊ณ , -1์ฉ ํ๋, +1์ฉํ๋ ์๊ฐ ๋ณต์ก๋๋ ๊ฑฐ๊ธฐ์ ๊ฑฐ๊ธฐ์ผ ๊ฒ ๊ฐ๋ค. (์๊ฐ ๋ณต์ก๋ ์์ง ๊ตฌํ๋ ๋ฒ์ ์ ๋ชจ๋ฅธ๋ค ใ ใ ๊ณต๋ถํด์ผํ๋ค)