-
[๋ฐฑ์ค] 14916 ๊ฑฐ์ค๋ฆ๋ with PythonPS 2022. 1. 26. 22:44728x90๋ฐ์ํ
๐ BOJ 14916 ๊ฑฐ์ค๋ฆ๋
๐ก ์กฐ๊ฑด
๋์ ์ ๊ฐ์๊ฐ ์ต์๊ฐ ๋๋๋ก ๊ฑฐ์ฌ๋ฌ ์ฃผ์ด์ผ ํ๋ค.
๊ฑฐ์ค๋ฆ๋ ์ก์ n(1 โค n โค 100,000)
DP, ์ํ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin n = int(stdin.readline()) res = int(1e9) for i in range(n // 5, -1, -1): money = n - i * 5 cnt = i if money % 2 != 0: continue else: cnt += money // 2 res = min(cnt, res) print(res) if res != int(1e9) else print(-1)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
13
์คํ๊ฒฐ๊ณผ
5
โจ๏ธ ๋ฌธ์ ํ์ด
5์ ๋์ ์ด ๋ช ๊ฐ ์ผ๋ ์ต์์ธ์ง ๊ตฌํ๋ฉด ๋๋ค.
int(1e9)๋ก ๊ฒฐ๊ณผ๊ฐ์ ์ด๊ธฐํํ ํด๋๊ณ , n // 5 ๊ฐ๋ถํฐ ํ๊ฐ์ฉ 5์์ง๋ฆฌ๋ฅผ ์ค์ฌ๊ฐ๋ฉฐ ์ต์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ค.
5์ ๊ฐ์์ ํด๋นํ๋ ๊ธ์ก๋งํผ n์์ ๋บ ํ, 2 ๋ก ๋๋์ด ๋จ์ด์ง์ง ์์ ๊ฒฝ์ฐ continue
5์ ๊ฐ์์ ํด๋นํ๋ ๊ธ์ก๋งํผ n์์ ๋บ ๋๋จธ์ง ๊ธ์ก์ด 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด res ๊ฐฑ์
๐พ ๋๋์
- ๋ถ๋ฅ์๋ DP๋ผ๊ณ ๋์ด ์์์ง๋ง, ๋ฉ๋ชจ์ด์ ์ด์ ์ ํ์๊ฐ ์๊ณ , ์๋ง ์ธ์ฐ๋ฉด ํ์ด๊ฐ ๊ฐ๋ฅํ ๋ฌธ์ ์๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1021 ํ์ ํ๋ ํ with Python (0) 2022.01.31 [๋ฐฑ์ค] 20291 ํ์ผ ์ ๋ฆฌ with Python (2) 2022.01.26 [๋ฐฑ์ค] 14888 ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ with Python (0) 2022.01.24 [๋ฐฑ์ค] 14502 ์ฐ๊ตฌ์ with Python (0) 2022.01.24 [๋ฐฑ์ค] 11504 ๋๋ ค ๋๋ ค ๋๋ฆผํ! with Python (0) 2022.01.11