반응형
출처 : https://www.acmicpc.net/problem/2231
Problem
Code
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.close();
int value = 0;
for (int i = 0; i < N; i++) {
int num = i;
int sum = 0;
while (num != 0) {
sum += num % 10; // 각 자릿수 더하기
num /= 10;
}
if (sum + i == N) {
value = i;
break;
}
}
System.out.println(value);
}
}
Improved Code
개선된 코드 출처 : https://st-lab.tistory.com/98
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 자릿수의 길이를 알기위해 일단 문자열로 입력받는다.
String str_N = in.nextLine();
// 해당 문자열의 길이 변수
int N_len = str_N.length();
// 문자열을 정수(int)로 변환
int N = Integer.parseInt(str_N);
int result = 0;
// i 는 가능한 최솟값인 N - 9 * N의 각 자릿수부터 시작
for(int i = (N - (N_len * 9)); i < N; i++) {
int number = i;
int sum = 0; // 각 자릿수 합 변수
while(number != 0) {
sum += number % 10; // 각 자릿수 더하기
number /= 10;
}
// i 값과 각 자릿수 누적합이 같을 경우 (생성자를 찾았을 경우)
if(sum + i == N) {
result = i;
break;
}
}
System.out.println(result);
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[완전 탐색] 2839번 설탕배달 (0) | 2023.06.08 |
---|---|
[완전탐색]1436번 영화감독 (0) | 2023.06.08 |
[완전탐색]1018번 체스판 다시칠하기 (0) | 2023.06.07 |
[완전탐색]19352번 수학은 비대면강의입니다. (0) | 2023.06.07 |
[완전탐색]2798번 블랙잭 (0) | 2023.06.06 |