🧩PS/🥉Easy
[JAVA] 백준 2231번 - 분해합
Cocoon_
2021. 10. 5. 04:58
반응형
<코드>
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int arr[] = new int[1000054];
for (int i = 1; i <= N; i++) {
int tmp = sum(i);
if(arr[tmp] == 0) {
arr[tmp] = i;
}else {
arr[tmp] = Math.min(arr[tmp], i);
}
}
System.out.println(arr[N]);
}
public static int sum(int x) {
int tmp = x;
while (x > 0) {
tmp += x%10;
x /= 10;
}
return tmp;
}
}
arr의 크기가 1000054인 이유는 999999의 분해합이 1000053이기 때문입니다.
https://www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
반응형