반응형
🔺 문제
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
🔺 코드
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
27
28
29
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
long answer = 0;
for(long i = 1 ; i <= N ; i++) {
long tmp = 0; // 분해합 - N의 값
long num = i;
while(num > 0) {
tmp += num % 10;
num /= 10;
}
if(i + tmp == N) {
answer = i;
break;
}
}
System.out.println(answer);
}
}
|
cs |
✅ 해결 아이디어
✔ 브루트포스
- 1부터 N까지 숫자 올려가면서 가장 작은 생성자를 찾으면 된다.
🔺 다른 풀이들
다들 비슷...
💬 느낀 점
저 범위를 자릿수가 같은 수부터 시작하려고 했는데 그랬더니 틀렸다. (예를 들어 숫자가 세자리수면 100부터 시작하게)
그냥 1부터 완전탐색해주면 되었던 것이다~~
(반례 : input - 18 / output - 9)
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 별 찍기 시리즈 (0) | 2023.07.01 |
---|---|
[백준/JAVA] 7568번: 덩치 (0) | 2023.06.30 |
[백준/JAVA] 1676번: 팩토리얼 0의 개수 (0) | 2023.06.29 |
[백준/JAVA] 2869번: 달팽이는 올라가고 싶다 (0) | 2023.06.29 |
[백준/JAVA] 1654번: 랜선 자르기 (0) | 2023.06.29 |