ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์นด๋ ๊ตฌ๋งคํ๊ธฐ์์๋ ๊ตฌ๋งคํ๊ณ ์ ํ๋ ์นด๋๋ฅผ ์ต๋๊ฐ์ผ๋ก ๊ตฌ๋งคํ๋ ๋ฌธ์ ์๋ค. ์ด์ ๋ฌ๋ฆฌ ์นด๋ ๊ตฌ๋งคํ๊ธฐ 2๋ ๊ฐ์ฅ ์ต์ ๊ฐ์ผ๋ก ์นด๋๋ฅผ ๊ตฌ๋งคํ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ ๊ธ์ก์ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. ์นด๋ ๊ตฌ๋งคํ๊ธฐ์ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ฉฐ, ์ฝ๊ฐ์ ์ฝ๋๋ฅผ ์์ ํ๋ฉด ์ด ๋ฌธ์ ๋ ์ฝ๊ฒ ํ ์ ์๋ค.
์ฝ๋
if __name__ == '__main__':
N = int(input())
card = [0] + list(map(int, input().split()))
memo = [0] * (N + 1)
memo[1], memo[2] = card[1], min(card[2], card[1] * 2)
for i in range(3, N + 1):
memo[i] = card[i]
for j in range(1, i // 2 + 1):
memo[i] = min(memo[i], memo[j] + memo[i - j])
print(memo[N])
์ต๋๊ฐ์ ์ฐพ๋ ๊ฒ์ด ์๋, ์ต์๊ฐ์ ์ฐพ์์ผ ํ๋ฏ๋ก max๋ฅผ min์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 2193 ์ด์น์ (0) | 2020.06.30 |
---|---|
๋ฐฑ์ค: 10844 ์ฌ์ด ๊ณ๋จ ์ (0) | 2020.06.30 |
๋ฐฑ์ค: 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (0) | 2020.06.29 |
๋ฐฑ์ค: 9095 1, 2, 3 ๋ํ๊ธฐ (0) | 2020.06.29 |
๋ฐฑ์ค: 11727 2xn ํ์ผ๋ง 2 (0) | 2020.06.28 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ