[BOJ] 2231번 분해합 - JAVA

최영환·2022년 9월 29일
0

BaekJoon

목록 보기
19/86
post-thumbnail
## Java 풀이 시 유의사항 ##
클래스명은 Main 으로 작성해야함!

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

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

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());
        int result = 0;
        for (int i = 1; i <= N; i++) {
            int M = 0;
            int temp = i;
            while (temp != 0) {
                M += temp % 10;
                temp /= 10;
            }
            if (M + i == N) {
                result = i;
                break;
            }
        }
        System.out.print(result);
    }
}

📄 해설

  • 브루트 포스(Brute Force) 알고리즘에 해당하는 문제로, 단순히 1부터 N 까지의 모든 수를 탐색하여 그 중 생성자가 있으면 반복문을 중단하고 해당 수를 출력하도록 작성하였음(1부터 시작하므로 가장 먼저 찾아진 생성자 => 무조건 최솟값이 됨)
profile
조금 느릴게요~

0개의 댓글