์๊ณ ๋ฆฌ์ฆ/๊ทธ๋ฆฌ๋
๋ฐฑ์ค 2839) ์คํ๋ฐฐ๋ฌ
sehaan
2022. 2. 8. 20:54

์ ๊ทผ๋ฐฉ์
- ์ต์ ๋ด์ง์๋ฅผ ๊ตฌํ๊ธฐ ์ํด์๋ 3๋ณด๋จ 5๋ก ๋ง์ด ๋๋์ด์ผํ๋ค.
๋ฐ๋ผ์ ํฌ๋ก๊ทธ๋จ์์ 3์ฉ ๋ง์ด๋์ค๋ฅผ ํด์ฃผ์ด 5๋ก ๋๋์ด ๋จ์ด์ง๋์ง ํ์ธํ์๋ค.
3์ ๊ณ์ ๋นผ์ฃผ์ด n์ด ๋ง์ด๋์ค๊ฐ ๋์ด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ๋ -1์ ์ถ๋ ฅํด์ฃผ์๋ค.
n = int(input())
cnt =0
while n >0:
if n%5 == 0:
cnt += n//5
break
n -= 3
cnt +=1
if n >=0:
print(cnt)
else:
print(-1)
ํ์ด ์ค์ dp ๋ฐฉ์์ผ๋ก๋ ํ ์ ์์ ๊ฑฐ ๊ฐ์์ ์ฝ๋ฉ์ ํด๋ณด์๋ค.
-------------
n = int(input())
d = [10001] *(n+1)
cnt = 0
d[0] = 0
d[3] = 1
for i in range(5,n+1):
d[i] = min(d[i-3],d[i-5]) + 1
if d[n] == 10001:
print(-1)
else:
print(d[n])