[Swift] 백준 2839번 설탕배달
문제 출처: 백준 2839번 설탕배달
문제
풀이
문제를 잘 읽어보고 수학적으로 계산하여 풀 수 있는 문제입니다.
봉지의 수를 최대한 줄여야 하므로 5킬로그램 봉지를 먼저 계산한 후 3킬로그램을 계산하여 풀어보았습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var n = Int(readLine()!)!
/// 봉지의 갯수
var result = 0
// n을 감소시킬 때마다 result(봉지) 증가
while n > 0 {
if n % 5 == 0 {
// 5로 나누어 떨어질 경우
n -= 5
result += 1
} else if n % 3 == 0 {
// 3으로 나누어 떨어질 경우
n -= 3
result += 1
} else if n > 5 {
n -= 5
result += 1
} else {
// 3 또는 5로 계산이 안될 경우 -1
result = -1
break
}
}
// 결과 출력
print(result)
- n을 입력받아 Int 형으로 변환합니다.
- n을 5와 3으로 계산할 때마다 n의 값을 감소시키고 봉지의 개수를 증가시킵니다.
먼저 손으로 풀어보고 규칙을 찾아낸 다음 코드로 옮기시면 좀 더 쉽게 푸실 수 있습니다.
이렇게 풀 경우 메모리: 69100 KB, 시간: 8 ms 결과가 나오게 됩니다.
댓글남기기