[Swift] 백준 231번 분해합
문제 출처: 백준 2231번 분해합
문제
풀이
1부터 분해합을 계산하여 입력받은 결과와 같은 수를 출력하는 문제로 단순 for 문을 이용하여 풀어봤습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let n = Int(readLine()!)!
var result = 0
for i in 1..<n {
var sum = i
var part = i
// 각 자리수 더하기
while part > 0 {
sum += part % 10
part /= 10
}
// 분해합이 입력받은 수와 같을 경우
if n == sum {
result = i
break
}
}
// 결과 출력
print(ans)
- 자연수 n을 입력받습니다.
- 1부터 n까지 분해합을 구합니다.
- 분해합이 n과 같을 경우 for 문을 중단시킵니다.
이렇게 풀 경우 메모리: 69100 KB, 시간: 20 ms 결과가 나오게 됩니다.
댓글남기기