Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Algorithm/Baekjoon

[python3] ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค - ํฐ ์ˆ˜์˜ ๋ฒ•์น™ (ch.3 ๊ทธ๋ฆฌ๋””)

๊ฐ์ž ๐Ÿฅ” 2021. 6. 17. 21:10
๋ฐ˜์‘ํ˜•

๋‚ด๋ˆ๋‚ด์‚ฐ

์ฐธ๊ณ ) ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ ์ฑ…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋œ ๋ฌธ์ œ์™€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. 
๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋Š” ์ž์„ธํ•˜๊ฒŒ ์ ์ง€ ์•Š๊ณ , ๊ฐ„๋‹จํ•œ ์„ค๋ช…๊ณผ ์ œ ์ฝ”๋“œ๋งŒ ์˜ฌ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

http://www.yes24.com/Product/Goods/91433923

 

์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ - YES24

๋‚˜๋™๋นˆ ์ €์ž์˜ ์œ ํŠœ๋ธŒ ๋ผ์ด๋ธŒ ๋ฐฉ์†ก https://www.youtube.com/c/dongbinnaIT ์ทจ์ค€์ƒ์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์ž…์‚ฌํ•˜๊ณ  ์‹ถ์€ ์นด์นด์˜ค · ์‚ผ์„ฑ์ „์ž · ๋„ค์ด๋ฒ„ · ๋ผ์ธ!์ทจ์—…์˜ ์„ฑ๊ณต ์—ด์‡ ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธํ„ฐ๋ทฐ์— ์žˆ๋‹ค!IT ์ทจ์ค€์ƒ

www.yes24.com

 

 

์‹ค์ „ ๋ฌธ์ œ (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์”ฉํ•˜๋ƒ ์‹œ๊ฐ„ ๋ณต์žก๋„๋„ ๊ฑฐ๊ธฐ์„œ ๊ฑฐ๊ธฐ์ผ ๊ฒƒ ๊ฐ™๋‹ค. (์‹œ๊ฐ„ ๋ณต์žก๋„ ์•„์ง ๊ตฌํ•˜๋Š” ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅธ๋‹ค ใ… ใ…  ๊ณต๋ถ€ํ•ด์•ผํ•œ๋‹ค)
๋ฐ˜์‘ํ˜•