[백준 JAVA] 2231번 풀이 - 분해합
by mini_minimport java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
/**
* 2231번 - 어떤 자연수 n이 있을 때, 그 자연수 n의 분해합은
* n과 n을 이루는 각 자리수의 합이다.
* m의 분해합이 n인 경우, m을 n의 생성자라 한다.
*
* 245의 분해합은 256(=245+2+4+5)가 된다.
* 따라서 245는 256의 생성자가 된다.
* 자연수 n이 주어졌을 때, n의 가장 작은 생성자를 구해라.
*
* @author Back
*
*/
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=1; i<=n; i++) {
String temp = Integer.toString(i); //1씩 늘려서 체크하기 .
int sum = 0;
for(int j=0; j<temp.length(); j++) {
sum += Character.getNumericValue(temp.charAt(j));
}
sum += Integer.parseInt(temp); //자기자신 더하기.
if(sum == n) {
System.out.println(temp);
break;
}
else if(i==n) {
System.out.println(0);
}
}
sc.close();
}
}
풀이
🔥 처음에 while(true) 로 코드를 작성했더니 시간 초과 오류가 떴다...
i <=n 까지 for 문으로 돌리면 되더라 .
'매일매일 알고리즘 공부' 카테고리의 다른 글
[백준 JAVA] 2587번 풀이 - 대표값2 (0) | 2023.08.03 |
---|---|
[백준 JAVA] 2750번 풀이 - 수 정렬하기 (0) | 2023.08.03 |
[백준 JAVA] 2839번 풀이 - 설탕 배달 (0) | 2023.08.01 |
[백준 JAVA] 1436번 풀이 - 영화감독 숌 (0) | 2023.07.31 |
[백준 JAVA] 2444번 풀이 - 별 찍기 7 (0) | 2023.07.29 |
블로그의 정보
개발자 미니민의 개발로그
mini_min