쉬운 문제여서 처음 써보는 메소드 같은건 없었다.
가장 작은 생성자를 구해야 하는데 처음에 실수로 가장 큰 생성자를 구해 버렸다.
문제를 잘 읽어야겠다

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
'코딩테스트' 카테고리의 다른 글
[완전탐색] 백준 14889번 스타트와 링크 (0) | 2022.10.13 |
---|---|
[완전탐색] 백준 2503번 숫자야구 (0) | 2022.10.06 |
[그리디] 프로그래머스 체육복 (0) | 2022.10.04 |
[그리디] 백준 11000번 강의실 배정 (0) | 2022.09.26 |
[그리디] 백준 13305번 주유소 (0) | 2022.09.25 |
댓글