맛동산이

백준) 2839 설탕배달 [Swift] 본문

알고리즘/백준

백준) 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())
반응형

'알고리즘 > 백준' 카테고리의 다른 글

백준) 2231 분해합 [Swift]  (0) 2023.08.09
(백준 10816 c++) 숫자카드 2  (0) 2022.07.07
(백준 2164 c++) 카드2  (0) 2022.07.05
(백준 9012 c++) 괄호  (0) 2022.07.05
(백준 1764) 듣보잡  (0) 2022.06.29