https://www.acmicpc.net/problem/2231
접근 :
- 입력받은 n 보다 작은 수 중 특정수(i)와 특정수의 각자리수를 더한 값이 n 과 같은 수 찾기
- i 가 여러개 일 경우 작은 수 출력( 작은 순서부터 큰 순서대로 계산 후 최초 i 발견 시 결과값 출력)
- ex> n = 256 인 경우 i = 245 (245+2+4+5 = 256)
- 끝까지 계산 후 조건을 만족하는 i 가 없는 경우 0 출력
- i는 n/2 이상이다. i 의 각자리 수 합을 해도 i 의 절반을 넘을 수 없음
(i 가 1자리 수 일때, 각 자리 수 합 = 자기 자신이므로 i + i (각자리수) = n 이다.)
코드 구현 :
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String temp_num = "";
int temp_sum = 0;
int result = 0;
for (int i = n / 2; i < n; i++) {
temp_num = Integer.toString(i);
temp_sum = 0;
// temp_sum 은 i 의 각 자리 수를 더한 값
for (int j = 0; j < temp_num.length(); j++) {
temp_sum += temp_num.charAt(j) - '0';
}
// i의 각 자리수를 더한 값과 i를 더한 값이 n과 같으면 break
if ((i + temp_sum) == n) {
result = i;
break;
}
}
// 결과 화면출력
System.out.println(result);
br.close();
}
}
'JAVA > Coding Test' 카테고리의 다른 글
[JAVA] 백준 10872 팩토리얼_재귀함수 (0) | 2023.02.28 |
---|---|
[JAVA] 백준 2798 블랙잭_브루트포스 (0) | 2023.02.28 |
[JAVA] 백준 7568 덩치_브루트포스 (1) | 2023.02.28 |
[JAVA] 백준 1436 영화감독 숌_브루트포스 (0) | 2023.02.28 |
[JAVA] 백준 1018 체스판 다시 칠하기_부르트포스 (0) | 2023.02.27 |