[7/5] 2839 (설탕배달)

이경준·2021년 7월 5일
0

코테

목록 보기
61/140
post-custom-banner

브론즈1 문제

내 코드

def sugar(n):
    answer = 0

    if (n in [1, 2, 4, 7]):
        return -1
    elif (n in [3, 6, 9, 12]):
        return n // 3

    if (n % 5 == 0):
        answer += n//5
    else:
        if (n % 5 == 1):
            answer += (n//5)-1
            answer += 2
        elif (n % 5 == 2):
            answer += (n//5)-2
            answer += 4
        elif (n % 5 == 3):
            answer += (n//5)
            answer += 1
        elif (n % 5 == 4):
            answer += (n//5)-1
            answer += 3
    
    return answer

n = int(input())
print(sugar(n))

로직

  1. n이 1, 2, 4, 7 중 하나면 -1 출력하고 끝
  2. n이 3, 6, 9, 12 중 하나면 n을 3으로 나눈 몫을 출력하고 끝
  3. n을 5로 나눈 나머지에 따라 if문을 수행
  4. answer 출력

효율적인 코드

n = int(input())
cnt = 0

while True:
    if (n % 5 == 0):
        cnt += (n//5)
        print(cnt)
        break
    
    n = n - 3
    cnt += 1
    
    if (n < 0):
        print(-1)
        break

피드백

  • 어떻게 풀어야 할지 몰라서 노가다로 풀었는데 구글링을 해보니 다양한 풀이방법이 있었다.
  • 풀다보면 이런 머리가 생기겠지?
profile
The Show Must Go On
post-custom-banner

0개의 댓글