문제
- 자연수 N이 주어질 때 N의 생성자를 찾는 문제.
- 생성자는 각 자리수와 생성자 수의 합을 이용해 구한다. (265의 생성자인 245의 경우 245+2+4+5)
아이디어
- 각 자리수를 더하기 위해 10으로 나눈 나머지를 계속해서 더한다.
- 다음 자리수를 더하기 위해서는 나눠지는 값을 10으로 나눈 몫으로 갱신하여 자리수를 하나씩 줄여 나가야 한다.
풀이
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());
for(int i=0; i<N+1; i++) {
int result = i;
int num = i;
while(num > 0) {
result += num % 10;
num /= 10;
}
if(result == N) {
System.out.println(i);
return;
}
}
System.out.println(0);
}
}
채점 결과
기타
- 자리수를 어떻게 접근해야 할지 조금 고민이 되었던 문제였다.
문제 링크
'백준' 카테고리의 다른 글
[JAVA] 백준 2798번: 블랙잭 (1) | 2024.07.10 |
---|---|
[JAVA] 백준 2292번: 벌집 (0) | 2024.07.10 |
[JAVA] 백준 4153번: 직각삼각형 (0) | 2024.07.09 |
[JAVA] 백준 1978번: 소수 찾기 (0) | 2024.07.09 |
[JAVA] 백준 30802번: 웰컴 키트 (1) | 2024.07.09 |