알고리즘/백준
백준) 2839 설탕배달 [Swift]
진ddang
2023. 8. 9. 14:24
문제
(https://www.acmicpc.net/problem/2839)
해설
5가 최대한으로 많이 들어가면 되는것이기 때문에
5를 처음에 나눠지는지 비교를 하고
3을 뺀 다음 다시 5로 나눠지는지 비교 계속 해나가면된다.
마지막에 나머지가 0 이 된다면 3으로만 나눠져도 나머지는 0 일것이고, 5로 나눠진다 해도 5가 하나라도 포함된 숫자일 것이다.
따라서 n이 0 보다 크다면, 계속해서 나누다가 0보다 작아지는 순간 -1을 출력하면 된다.
func solution() -> Int {
var n = Int(readLine()!)!
var result = 0
if n % 5 == 0 {
return n / 5
}
while n >= 0 {
n -= 3
result += 1
if n % 5 == 0 {
return result + (n / 5)
}
}
return -1
}
print(solution())
반응형