๐ก ์กฐ๊ฑด ๋ฐ ํ์ด
- ์ฃผ์ ์์ฅ์์ ๋จํ๋ฅผ ์น๋ ๊ตญ์ ์๋ณธ ๋ถ๋์ฐ ํ์ฌ๋ฅผ ๋์ ์ต๊ณ ์ ์์ต์ ๋ด๋ ๋ฌธ์ .
- ์ผ ์๋ฅผ ๋ํ๋ด๋
1 <= n <= 15
- ์ด๊ธฐ ํ๊ธ์ ๋ํ๋ด๋
W
- ๋ค์
n
๊ฐ์ ์ค์์, i๋ฒ์งธ ์ค์ i์ผ์ ๋ฐ์ดํธ ์ฝ์ธ ๊ฐ๊ฒฉ
์ ๋ํ๋ด๋ ์ ์ si
๊ฐ ์ฃผ์ด์ง๋ค(1 ≤ si ≤ 50)
.
- ๋จ์ ๊ตฌํ, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin
n, w = map(int, stdin.readline().split())
arr = []
for _ in range(n):
arr.append(int(stdin.readline()))
m = False
coin = 0
for i in range(n - 1):
if not m and arr[i] < arr[i + 1]:
m = arr[i]
coin = w // m
w -= coin * m
elif m and arr[i] > arr[i + 1]:
w += arr[i] * coin
coin, m = 0, False
if m:
w += coin * arr[-1]
print(w)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
10 24
5
7
5
4
2
7
8
5
3
4
์คํ๊ฒฐ๊ณผ
170
โจ๏ธ ๋ฌธ์ ํ์ด
- ํ์ฌ ๋งค์ํ ์ฝ์ธ์ด ์๋์ง์ ์ํ๋ฅผ ์ฒดํฌํ ์ ์๋ ๋ณ์
"m" (๊ธฐ๋ณธ๊ฐ์ False)
์ฝ์ธ์ ๋ช๊ฐ ์๋์ง์ ๋ํ ์ ๋ณด๋ฅผ ๋ฃ์ด์ค ๋ณ์ "coin"
- ์ฝ์ธ์ด ๋ค์ ๋ ์ ๊ฐ๊ฒฉ์ด ์์นํ๊ฑฐ๋ ๋ณ๋์ด ์๋ค?
์ด๋ฏธ ๋งค์ํ ๊ฒฝ์ฐ, pass
๋งค์ํ์ง ์์ ๊ฒฝ์ฐ, ๊ตฌ๋งค
- ์ฝ์ธ์ด ๋ค์ ๋ ์ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง๋ค?
ํ๋งค
- ์ต์ข
์ ์ผ๋ก ๋จ์ ์๋ ํ๊ธ์ ์ถ๋ ฅ
๐พ ๋๋์
- ๋จ์ ๊ตฌํ ๋ฐ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ์์ต๋๋ค.
- ์ฝ์ธ์ ์๋์ง ์์๋์ง์ ๋ํ ๋ณ์๋ฅผ ์ถ๊ฐํ์ฌ ์ฝ๊ฒ ํ ์ ์์์ต๋๋ค.
- ์ค์ ์ฝ์ธ ์์ฅ์ด๋ ์ํ์ฒ๋ผ x% ์์ต๋ฅ ๊ณ์ฐํ๋ค๊ฐ ํฐ ์ฝ ๋ค์น ๋ปํ์ต๋๋ค.
- ๋ฌธ์ ๋ฅผ ๋ ํ์คํ ์ฝ๊ณ ์์ถํ๋ ๋ฅ๋ ฅ์ ํค์์ผ๊ฒ ์ต๋๋ค.