728x90
문제: https://www.acmicpc.net/problem/2231
코드: https://github.com/irerin07/AlgorithmStudyBaek/blob/master/src/baekjoon2231.java
import java.util.ArrayList;
import java.util.Scanner;
public class baekjoon2231 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
System.out.println(solution(N));
}
public static int solution(int N){
int answer = 0;
for(int i = 0; i < N; i++){
int temp = i;
for(int j = 0; j < String.valueOf(i).length(); j++){
temp = temp + String.valueOf(i).charAt(j)-48;
}
if(temp == N){
answer = i;
return answer;
}
}
return answer;
}
}
어제에 이어 같은 브루트포스 문제이다.
합을 만들고 싶은 수 N을 입력받고
N의 최소 분해합을 찾는 문제이다.
예를 들어 216같은 경우
198 + 1 + 9 + 8 을 합하면 216이 나오게 되며 198은 216의 최소 분해합이 된다.
10을 예로 들면
5 + 5를 하여 10이 나오게 되므로 5는 10의 최소 분해합이다.
1부터 N까지 for loop을 돌면서
i의 각 자리수를 분해하여 한자리수들로 만든 뒤 그 합을 구하고
i에 구한 값을 더하여 N이 나오는지 확인하는 것이다.
최소 분해합을 찾아야 하기 때문에 0부터 시작하여 N으로 올라가는 방식을 사용했다.
728x90
'알고리즘' 카테고리의 다른 글
[백준]동전 0 [Java/자바] (0) | 2019.09.15 |
---|---|
[백준] 덩치 [Java/자바] (0) | 2019.09.10 |
[백준]블랙잭 [Java/자바] (0) | 2019.09.09 |
[백준] ATM [Java/자바] (0) | 2019.06.15 |
[백준] 동전 0 [Java/자바] (0) | 2019.06.15 |