백준 2839 : 설탕배달

상은·2022년 2월 21일
0

백준문제

목록 보기
4/12

백준 2839번 문제

N = int(input())

cnt = 0

while N >= 0 :
    if N % 5 == 0 :
        cnt += N // 5
        print(cnt)
        break
    else:
        N -= 3
        cnt += 1
else:
    print(-1)

배달해야 되는 N kg의 설탕을 입력으로 받아주고,
몇 개의 가방으로 나눠야하는지를 저장할 cnt 변수를 초기화해준다.

N 값을 계속 5 로 나눠주거나 3씩 빼줄거기때문에 , while 반복문의 조건은 N >= 0 이다.
5로도 나눌수 있고, 3으로도 나눌수있지만, 5도 나눌 수 있는 경우가 가방의 개수를 최소화 할 수 있기 때문에 5로 나눠지는 경우만 생각을 한다.
5로 나눠진다면 5의 배수이기 때문에 가장 베스트 상황이 나온다.
5로 나눠지지 않는다면 , 3kg로 나눠야하기 때문에 설탕의 무게를 3kg를 빼주고 가방 한개를 늘려주고 다시 반복문을 돌린다.

그렇게 돌리면서 N 이 0이 되는 값이 나오면 그때의 가방의 개수를 출력하게 되고, N이 0보다 작아진다면, -1를 출력하면 된다.

profile
Be the Best

0개의 댓글