๐2839 ์คํ ๋ฐฐ๋ฌ
https://www.acmicpc.net/problem/2839
์ฒ์ ๋ฑ ๋ ์๊ฐ์
3์ธ๊ฒฝ์ฐ / 5์ธ๊ฒฝ์ฐ / 3๊ณผ 5 ๋ ๋ค๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ ๋ฅผ ๋ค ์ธ์
๊ฐ์ฅ ์์ ๊ฒฝ์ฐ์ ์๋ฅผ ๋นผ์ผ ํ๋ค๊ณ ์๊ฐํ๋ค.
๋ด ํ์ด (์ค๋ต)
n=int(input)
def three(num):
if num%3 ==0:
return num//3
else:
return -1
def five(num):
if num%5 ==0:
return num//5
else:
return -1
def both(num):
left=1
cnt=0
while left!=0:
if num>=5:
if num%5==0:
return num//5
else:
cnt=num//5
num=num%5
continue
if num>=3 and num<5:
if num%3==0 and cnt!=0:
return num//3+cnt
else:
return -1
print(three(n),five(n),both(n))
ํ์ฐฝ์ ๊ตฌํํ๋ค ๋ญ๊ฐ ์ด์ํ๋ค๋ ๋๋์ ๋ฐ์๋ค.
์ผ๋จ ์ฝ๋์ ๋ถํ์ํ ๋ฐ๋ณต์ด ๋ง๊ณ , ๋ ํจ์จ์ฑ๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์์ฌ.. ๋๋ํ ํ์ด์ฌ.. -1๋ ์ธ์ฃผ๋ค..? ๋ค์๋ค์..
๋ค๋ฅธํ์ด
sugar=int(input())
bag=0
while sugar>=0:
if sugar%5==0:
bag+=(sugar//5)
print(bag)
break
sugar-=3
bag+=1
else:
print(-1)
๋ง์์ฌ ๋ฐ๋ณต๋ฌธ์ ํ๋๋ก ์ถฉ๋ถํ๋ค.
์ซ์๊ฐ ๋ค์ด์ค๋ฉด 0์ด ๋ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋๋ฐ
1) 5๋ก ๋๋ด์ ๋ ๋๋ ์ง๋ฉด = ๊ฐ
2) ๋๋ ์ง์ง ์์ผ๋ฉด ๋๋จธ์ง๊ฐ์ sugar-=3ํ๋ฉด์ ๋ด์ง์ ๊ฐ์๋ฅผ ์ถ๊ฐํด์ค๋ค
3) ์ฌ๊ธฐ์ sugar๊ฐ 3๊ณผ 5์ ๋ฐฐ์๊ฐ ์๋ ๊ฒฝ์ฐ -๊ฐ์ผ๋ก ๋จ์ด์ง๋ฏ๋ก -1์ผ๋ก return ๊ฐ๋ฅ
๐๊ทธ๋ฆฌ๋ ๋ผ๋ ํ์ด์ ๊ฐํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ด๊ฐ ์ง์ ์๊ฐํ๊ณ ๊ณ์ฐํด์ผ ํ๋ค๊ณ ์๊ฐํ์ง๋ง
๊ผญ ๊ทธ๋ ์ง๋ง์ ์์๋ค. ์์ผ๋ก ๊ฐํ ์๊ฐํ๋ ์ต๊ด์ ์ค์ฌ๋ณด์!]\
๋๊ธ