[Algorithm]BJ_2231 분해합

dnjsrms.lee·2022년 6월 3일
0

Algorithm

목록 보기
2/3
post-thumbnail

[BJ_2231]분해합 | 누르면 해당 문제로 이동

Brute Force(2)

[접근방법]
그리 어렵지 않게 풀어낼 수 있다.
216 = 198+1+9+8 = 198
198이라는 생성자의 분해합은 198+1+9+8로 216이 된다.

생성자는 1개 이상이기 때문에 최솟값을 찾기 위해 작은 수 부터 찾아야 한다.

1~N까지 대입해가며 찾는 기본적인 방법으로 풀어보았다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BJ_2231 {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        int result = 0;

        for (int i=0; i <= N; i++){

            int number = i;
            int sum = 0;

            while (number != 0){
                sum += number % 10; // number 를 10으로 나눈 나머지를 sum 에 더함
                number /= 10;       // number 를 10으로 나눈 몫을 다시 num 에 저장
            }
            if (sum + i == N){
                result = i;
                break;
            }
        }
        System.out.println(result);
    }
}
profile
little by little slowly

0개의 댓글