Tiny Bunny [Python] [PCCE ๊ธฐ์ถœ๋ฌธ์ œ] 6๋ฒˆ / ๋ฌผ ๋ถ€์กฑ
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
programmers/Lv.0

[Python] [PCCE ๊ธฐ์ถœ๋ฌธ์ œ] 6๋ฒˆ / ๋ฌผ ๋ถ€์กฑ

by maesil 2025. 2. 24.

๋ฌธ์ œ ์„ค๋ช…

 

ใ…‡ใ…‡์‹œ์—์„œ๋Š” ์ €์ˆ˜์ง€๊ฐ€ ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ, ๋„์‹œ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๋ฌผ์€ ์ด ์ €์ˆ˜์ง€์— ์ €์žฅ๋œ ๋ฌผ์„ ๋Œ์–ด์™€ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ ๊ธฐํ›„๋กœ ์ธํ•ด ๊ทน์‹ฌํ•œ ๊ฐ€๋ญ„์ด ์˜ˆ๊ณ ๋œ ์ƒํ™ฉ์—์„œ, ์ง€๋‚œ ๋‹ฌ์˜ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ์ด๋ฒˆ๋‹ฌ๋ถ€ํ„ฐ ์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ์˜ ์›”๋ณ„ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰์˜ ๋ณ€ํ™”๋ฅผ ์˜ˆ์ธกํ•œ ๊ฐ’์„ ์ด์šฉํ•ด ๋ช‡ ๋‹ฌ ๋’ค ๋ฌผ์ด ๋ถ€์กฑํ•ด์ง€๋Š”์ง€ ์˜ˆ์ธกํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฒˆ๋‹ฌ๋ถ€ํ„ฐ์˜ ์›”๋ณ„ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰ ๋ณ€ํ™”๋ฅผ ์˜ˆ์ธกํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ฒจ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

  • [10, -10, 10, -10, 10, -10, 10, -10, 10, -10]
  • ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์›์†Œ๋Š” ํ•ด๋‹น ์›”์˜ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰์ด ์ „ ๋‹ฌ์— ๋น„ํ•ด ๋ช‡ % ๋งŒํผ ์ฆ๊ฐ€ ๋˜๋Š” ๊ฐ์†Œํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋ฒˆ๋‹ฌ์˜ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰ (๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ)์€ ์ง€๋‚œ ๋‹ฌ ๋ณด๋‹ค 10% ์ฆ๊ฐ€ํ•œ ๊ฐ’์ด๋ฉฐ, ๋‹ค์Œ ๋‹ฌ(๋ฆฌ์ŠคํŠธ์˜ ๋‘ ๋ฒˆ์งธ ์›์†Œ)์˜ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰์€ ์ด๋ฒˆ๋‹ฌ ์‚ฌ์šฉ๋Ÿ‰์—์„œ 10%๋งŒํผ ๊ฐ์†Œํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค.
  • ์ž์„ธํ•œ ๊ฐ’์€ ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

ํ˜„์žฌ ์ €์ˆ˜์ง€์— ์ €์žฅ๋œ ๋ฌผ์˜ ์–‘์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ storage์™€ ์ง€๋‚œ ๋‹ฌ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ usage, ์›”๋ณ„ ๋ฌผ ์‚ฌ์šฉ๋Ÿ‰์ด ์ „ ๋‹ฌ ๋Œ€๋น„ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ์ €์žฅ๋œ ์ •์ˆ˜ ๋ฆฌ์ŠคํŠธ change๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋ช‡ ๋‹ฌ ๋’ค ๋ฌผ์ด ๋ถ€์กฑํ•ด์ง€๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ํ•œ ์ค„์„ ์ˆ˜์ •ํ•ด solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๊ฐ€๋ญ„์ด ๋๋‚ ๋•Œ ๊นŒ์ง€ ์ €์ˆ˜์ง€์˜ ๋ฌผ์ด ๋‚จ์•„ ์žˆ๋‹ค๋ฉด -1์„ returnํ•ฉ๋‹ˆ๋‹ค.

 

 

์ž…์ถœ๋ ฅ ์˜ˆ

storage usage change result
5141 500 [10, -10, 10, -10, 10, -10, 10, -10, 10, -10] -1
1000 2000 [-10, 25, -33] 1

 

 

์ œ์ถœ ๋‚ด์—ญ

def solution(storage, usage, change):
    total_usage = 0
    for i in range(len(change)):
        usage = usage + (usage * change[i]/100)
        total_usage += usage
        if total_usage > storage:
            return i
    
    return -1

 

 

๋‹ค๋ฅธ ํ’€์ด

def solution(storage, usage, change):
    total_usage = 0
    for i in range(len(change)):
        usage = usage * (100 + change[i])/100
        total_usage += usage
        if total_usage > storage:
            return i

    return -1

 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค > PCCE ๊ธฐ์ถœ๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/340202

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr