https://www.acmicpc.net/problem/2231
1. 아이디어
몫과 나머지 연산을 활용해서 각 자리수를 추출할 수 있다.
2. 문제풀이
1부터 N까지 반복문을 돌며 분해합을 구해서 N과 동일한지 비교하는 방식으로 구현했다. 분해합은 해당 숫자와 각 자리수의 합인데 각 자리수의 합은 몫과 나머지 연산을 활용해서 간단하게 추출할 수 있다.
3. 코드
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());
int ans = 0;
for (int i = 1; i <= N; i++) {
int sum = solve(i);
if (sum == N) {
ans = i;
break;
}
}
System.out.println(ans);
}
private static int solve(int N) {
int sum = N;
while (N != 0) {
sum += N % 10;
N /= 10;
}
return sum;
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 2042번 - 구간 합 구하기 [Java] (0) | 2025.01.14 |
---|---|
[백준] 12348번 - 분해합 2 [Java] (0) | 2025.01.14 |
[백준] 15482번 - 한글 LCS [Java] (0) | 2025.01.14 |
[백준] 13711번 - LCS 4 [Java] (0) | 2025.01.13 |
[백준] 1958번 - LCS 3 [Java] (0) | 2025.01.13 |