본문 바로가기
코테/백준

[백준] 2893 설탕배달 스위프트

by 리드맥 2022. 1. 1.

코드:

let input = Int(readLine()!)!

var X = 0
var i = 1
while i <  1666{
    //최소수
    if input % 5 == 0 {
        print(input / 5)
        break
    }
    
    //5, 3 합쳐서 3을 i에 곱해준 이유는 그래야 5로 나눠줘서 봉지 최소 개수가 되기 때문
    //3으로만 나눠지면 input -3 * i 가 0이 딱 되면 그게 3의 봉지수
    if (input - 3 * i) % 5  == 0 {
        X = (input - 3 * i) / 5
        print("\(i + X)")
        break
    }
    
    //3으로도 안나눠지면 나눠지는게 없음
    if (input - 3 * i) < 0 {
        print(-1)
        break
    }
    i = i + 1
}


설명:

1666만 해주는 이유는  5000나누기 최소수 3나눠줘서 1666, 5로 딱나눠떨어지면 최소봉지 , 그다음이 5, 3 합친 봉지수

 i * 3 해서 0보다 아래로 떨어지면 3으로도 안나눠지는거여서 -1 출력합니다
 
결과:

댓글