아이디어 : 각 자리수의 합을 도출 할 방법을 생각해보자, 가장 작은 수를 도출할 방법을 생각해 보자.
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
// 배열 A와 숫자 n을 입력받는다.
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int result = 0;
// 마지막 정답을 반환할 변수 만약 해당하는 수가 없다면 0을 반환.
for (int i = 1; i < N; i++) {
//1부터 N까지 숫자 중 각 자리수를 모두 더하고 해당 i값도 더했을 때 N과 같은지 비교한다.
int sum = 0;
// 각 자리수를 더한값을 가지는 변수
int num = i;
i값을 while문에서 사용하기 위한 변수
while (num != 0) {
sum = sum + num % 10;
num = num / 10;
// 숫자의 끝자리 부터 %의 특성을 이용하여 sum에 더한다.
// 더한 후 10으로 나누어 남은 자리수도 구한다.
}
if (sum + i == N) {
//분해합의 조건을 충족한다면
result = i;
break; // 종료
}
}
System.out.print(result);
sc.close();
}
}'java' 카테고리의 다른 글
| 백준 1436 영화감독 숲 자바 java (0) | 2024.01.16 |
|---|---|
| 백준 19532 수학은 비대면강의입니다. 자바 java (0) | 2024.01.16 |
| 백준 2789 블랙잭 java 자바 (0) | 2024.01.16 |
| 백준 24313 자바 java (1) | 2024.01.15 |
| 백준 3009 네 번째 점 (0) | 2024.01.12 |