Algorithm/BaekJoon
[BOJ] 2231. 분해합
히욤이
2019. 8. 3. 22:41
BaekJoon 2231. 분해합
* 문제의 저작권은 BOJ 및 문제를 만든 사람에게 있습니다.
[문제 접근]
1부터 N까지 범위를 주고 값을 찾는다
값을 int로 받았지만 각 자리의 숫자도 있어야 하기 때문에 String으로 변환 시켜서 리스트에 하나씩 넣어줬다
리스트에 있는 값들과 + i값이 N과 같으면 정답
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Main_2231 {
public static void main(String[] args) throws Exception, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int answer = 0;
for (int i = 1; i <= N; i++) {
String num = String.valueOf(i);
ArrayList<Integer> list = new ArrayList<Integer>();
for (int j = 0; j < num.length(); j++) {
list.add((int)num.charAt(j)-48);
}
int sum = 0;
for (int j = 0; j < list.size(); j++) {
sum = sum + list.get(j);
}
answer = i + sum;
if (answer == N) {
answer = i;
break;
} else {
answer = 0;
}
//System.out.println(arr.size());
}
System.out.println(answer);
}
}