https://www.acmicpc.net/problem/2839
제출한 답
n = int(input())
total = 0
while n!=0:
if n%5==0:
total+=n//5
break
elif n>=3 :
n-=3
total+=1
else :
total = -1
break
print(total)
맞았습니다!
코드 풀이
n = int(input())
total = 0
설탕의 무게 n 입력 받고 최종 출력할 봉지의 개수 total 선언
while n!=0:
if n%5==0:
total+=n//5
break
elif n>=3 :
n-=3
total+=1
설탕의 무게 n이 0이 될 때까지 반복하는 반복문 while문을 돌며 봉지의 개수를 센다.
최대한 5킬로그램 봉지를 많이 사용해야 적은 봉지 개수를 만들 수 있다.
따라서 n이 5로 딱 나뉘어 떨어진다면 전부 5킬로그램의 봉지를 사용한다. 5로 나눈 몫을 total값에 더해준다.
그렇지 않다면 3킬로그램의 봉지를 사용한다. n에서 3을 빼고 total에 1을 더해준다.
3을 계속 빼다가 5로 나뉘어지는 n이 된다면 나머지는 5킬로그램 봉지에 담게 될 것이고, 0이 된다면 while문을 벗어날 것이다.
만약 n이 5로 나뉘지도 않고, 3보다 작다면 어떤 봉지에도 담을 수 없으므로 아래 else문으로 넘어간다.
else :
total = -1
break
print(total)
3킬로그램 봉지도 5킬로그램 봉지도 사용할 수 없는데 설탕이 남았다면 total 값을 -1로 한다.
마지막으로 total 값을 출력한다.
'개발 > 코딩테스트' 카테고리의 다른 글
백준 2960번: 도영이가 만든 맛있는 음식 [JAVA] (0) | 2023.03.15 |
---|---|
백준 1759번: 암호만들기 [JAVA] (0) | 2023.03.15 |
백준 17608번: 막대기 [JAVA] (1) | 2023.03.15 |
백준 2164번: 카드2 [JAVA] (0) | 2023.03.15 |
백준 1158번: 요세푸스 문제 [JAVA] (0) | 2023.03.15 |
댓글