본문 바로가기
코딩문제

백준 [2839번] 설탕 배달 (Python)

by 컴돌이_예준 2022. 1. 20.

좀 복잡하지만 조건을 여러개 세워서 풀었습니다.

n = int(input())
cnt = 0
pass_flag = False
m = n
if m%5 == 0:
    cnt = m//5
else:
    if m<5 and m%3 != 0:
        cnt = -1
    elif m == 3:
        cnt = 1
    else:
        if m>5:
            temp = m//5
            while 1:
                m = n
                m -= (5*temp)
                if m % 3 == 0:
                    cnt += temp
                    cnt += m//3
                    pass_flag = True
                    break
                temp -= 1
                if temp < 0:
                    break
            if pass_flag == False:
                m = n
                if m % 3 == 0:
                    cnt += n//3
                else:
                    cnt = -1
print(cnt)

아래는 1년전 풀이인데 더 간단하게 풀었더라고요,,, 퇴화하는 실력..?

n = int(input())
s=0
if n==4 or n<3:
    print(-1)
else:
    a = n//5
    b = n%5
    while(1):
        if b==0:
            print(a)
            break
        if b%3==0:
            c=b//3
            print(a+c)
            break
        else:
            a = a-1
            b = n-a*5
        if a<0 and n%3!=0:
            print(-1)
            break
        if a<=0 and n%3==0:
            print(n//3)
            break

결과