[백준] 설탕 배달 (2839)
문제 설명
입력 및 출력
» 입력
첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)
» 출력
상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
18 | 4 |
4 | -1 |
6 | 2 |
9 | 3 |
11 | 3 |
문제 풀이(SWIFT) 1
//
// main.swift
// BOJ2839_SWIFT
//
// Created by choiyoujun on 2022/02/08.
//
var N = Int(readLine()!)!
var dp = [Int](repeating: 0, count: 5001)
dp[3] = 1
dp[5] = 1
if N >= 6 {
for i in 6...N {
if dp[i - 3] != 0 {
dp[i] = dp[i - 3] + 1
}
if dp[i - 5] != 0 {
dp[i] = dp[i - 5] + 1
}
}
}
print(dp[N] == 0 ? -1 : dp[N])