1. ๋ฌธ์ ์ค๋ช
ใ
ใ
์์์๋ ์ ์์ง๊ฐ ํ๋ ์๋๋ฐ, ๋์ ๋ด์์ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ฌผ์ ์ด ์ ์์ง์ ์ ์ฅ๋ ๋ฌผ์ ๋์ด์ ์ฌ์ฉํฉ๋๋ค. ์ด์ ๊ธฐํ๋ก ์ธํด ๊ทน์ฌํ ๊ฐ๋ญ์ด ์๊ณ ๋ ์ํฉ์์, ์ง๋ ๋ฌ์ ๋ฌผ ์ฌ์ฉ๋๊ณผ ์ด๋ฒ๋ฌ๋ถํฐ ์ผ์ ๊ธฐ๊ฐ ๋์์ ์๋ณ ๋ฌผ ์ฌ์ฉ๋์ ๋ณํ๋ฅผ ์์ธกํ ๊ฐ์ ์ด์ฉํด ๋ช ๋ฌ ๋ค ๋ฌผ์ด ๋ถ์กฑํด์ง๋์ง ์์ธกํ๋ ค๊ณ ํฉ๋๋ค.
์ด๋ฒ๋ฌ๋ถํฐ์ ์๋ณ ๋ฌผ ์ฌ์ฉ๋ ๋ณํ๋ฅผ ์์ธกํ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ์ ๋ด๊ฒจ ์ฃผ์ด์ง๋๋ค.
- [10, -10, 10, -10, 10, -10, 10, -10, 10, -10]
- ๋ฆฌ์คํธ์ ๊ฐ ์์๋ ํด๋น ์์ ๋ฌผ ์ฌ์ฉ๋์ด ์ ๋ฌ์ ๋นํด ๋ช %๋งํผ ์ฆ๊ฐ ๋๋ ๊ฐ์ํ๋์ง๋ฅผ ๋ํ๋ ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ด๋ฒ๋ฌ์ ๋ฌผ ์ฌ์ฉ๋ (๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ์์)์ ์ง๋ ๋ฌ ๋ณด๋ค 10% ์ฆ๊ฐํ ๊ฐ์ด๋ฉฐ, ๋ค์ ๋ฌ(๋ฆฌ์คํธ์ ๋ ๋ฒ์งธ ์์)์ ๋ฌผ ์ฌ์ฉ๋์ ์ด๋ฒ๋ฌ ์ฌ์ฉ๋์์ 10%๋งํผ ๊ฐ์ํ ๊ฐ์ ๋๋ค.
ํ์ฌ ์ ์์ง์ ์ ์ฅ๋ ๋ฌผ์ ์์ ๋ํ๋ด๋ ์ ์ storage์ ์ง๋ ๋ฌ ๋ฌผ ์ฌ์ฉ๋์ ๋ํ๋ด๋ ์ ์ usage, ์๋ณ ๋ฌผ ์ฌ์ฉ๋์ด ์ ๋ฌ ๋๋น ์ด๋ป๊ฒ ๋ณํ๋์ง ์ ์ฅ๋ ์ ์ ๋ฆฌ์คํธ change๊ฐ ์ฃผ์ด์ง ๋ ๋ช ๋ฌ ๋ค ๋ฌผ์ด ๋ถ์กฑํด์ง๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ๋ ค ํฉ๋๋ค. ์ฝ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก ํ ์ค์ ์์ ํด solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๊ฐ๋ญ์ด ๋๋ ๋๊น์ง ์ ์์ง์ ๋ฌผ์ด ๋จ์ ์๋ค๋ฉด -1์ returnํฉ๋๋ค.
์ ํ์ฌํญ
- 1,000 ≤ storage ≤ 1,000,000
- 500 ≤ usage ≤30,000
- 1 ≤ change์ ๊ธธ์ด ≤ 30
- -99 ≤ change[i] ≤ 500
- change[i]๊ฐ ์์์ผ ๊ฒฝ์ฐ ๋ฌผ ์ฌ์ฉ๋์ ์ ๋ฌ๋ณด๋ค change[i]%๋งํผ ์ฆ๊ฐํฉ๋๋ค.
- change[i]๊ฐ ์์์ผ ๊ฒฝ์ฐ ๋ฌผ ์ฌ์ฉ๋์ ์ ๋ฌ๋ณด๋ค change[i]%๋งํผ ๊ฐ์ํฉ๋๋ค.
- change[i]๊ฐ 0์ผ ๊ฒฝ์ฐ ๋ฌผ ์ฌ์ฉ๋์ ์ ๋ฌ๊ณผ ๋์ผํฉ๋๋ค.
- ๋งค๋ฌ ๋ฌผ ์ฌ์ฉ๋์ ์์์ ์ดํ๋ฅผ ๋ฒ๋ฆฐ ์ ์๋ก ๊ณ์ฐํฉ๋๋ค.
2. ์ถ๋ ฅ ์์

3. ๋ฌธ์ ๋ต์
def solution(storage, usage, change):
total_usage = 0
for i in range(len(change)):
usage = usage * (100 + change[i]) / 100 # ๋ณ๊ฒฝ ์ usage = total_usage * change[i]/100
total_usage += usage
if total_usage > storage:
return i
return -1