코딩테스트
[완전탐색] 백준 2231번 분해합
Enhydra lutris
2022. 10. 6. 14:43
728x90
쉬운 문제여서 처음 써보는 메소드 같은건 없었다.
가장 작은 생성자를 구해야 하는데 처음에 실수로 가장 큰 생성자를 구해 버렸다.
문제를 잘 읽어야겠다

import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int result = 0;
for(int i = 0; i < N; i++){
int sum = i;
int a = i;
while(a != 0){ //각 자리수 더하기
sum += a % 10;
a /= 10;
}
if(sum == N){
result = i;
break;
}
}
System.out.println(result);
}
}
완전 탐색은 가능한 모든것을 다 시도해서 답을 찾는 방법이기 때문에 for문으로 0부터 N까지의 수를 모두 돌아가면서 분해합을 찾으면 된다.
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net