백준 [2839] - 설탕 배달

    반응형

     

    문제

     

     

     

    작성한 코드

    import sys
    
    input = sys.stdin.readline
    
    N = int(input())
    sugar = 0
    
    while True:
        if (N%5) == 0:
            sugar += (N//5)
            print(sugar)
            break
      
        if N >= 3:
            N -= 3
            sugar += 1
        else:
            print(-1)
            break

    - sys.stdin.readline을 input에 할당하여 사용한다.

    - input()으로 문자를 입력받고, int형으로 형변환하여 N에 저장한다. (N : kg 수)

    - 봉지 수인 sugar를 0으로 초기화 시켜준다.

    - while True: 반복문 while문의 조건을 True로 하여 무한반복 되게 한다.

    - if (N%5)==0: 만약 N을 5로 나눴을 때 0이라면, sugar에 N을 5로 나눴을 때의 몫을 더해주고, print()로 출력한뒤, break문으로 while문을 멈춘다. (먼저 제일 큰 5kg으로 나눠본다.)

    - if N >= 3: 만약 N이 3보다 크다면, N의 값을 3 감소시켜주고, sugar를 1 증가시켜준다.

    - 이후 3이 감소된 N으로 다시 반복문을 돌게 된다.

    - else: 만약 N이 3보다 작다면, 5나 3으로 나눠지지 않기 떄문에 print()로 -1을 출력하고, break문으로 while문을 멈춘다.

     

     

     

    반응형

    댓글