본문 바로가기
java

백준 2231 분해합 java 자바

by MiaCoder 2024. 1. 16.

 

아이디어 : 각 자리수의 합을 도출 할 방법을 생각해보자, 가장 작은 수를 도출할 방법을 생각해 보자.

 

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {

        // 배열 A와 숫자 n을 입력받는다.

        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();

        int result = 0;
        // 마지막 정답을 반환할 변수 만약 해당하는 수가 없다면 0을 반환.

        for (int i = 1; i < N; i++) {
        	//1부터 N까지 숫자 중 각 자리수를 모두 더하고 해당 i값도 더했을 때 N과 같은지 비교한다.
             
            int sum = 0;
            // 각 자리수를 더한값을 가지는 변수
            
            int num = i;
           i값을 while문에서 사용하기 위한 변수

            while (num != 0) {
                sum = sum + num % 10;
                num = num / 10;
                // 숫자의 끝자리 부터 %의 특성을 이용하여 sum에 더한다.
                // 더한 후 10으로 나누어 남은 자리수도 구한다.
            }

            if (sum + i == N) {
            	//분해합의 조건을 충족한다면
                
                result = i;
                break; // 종료
            }
        }

        System.out.print(result);

        sc.close();
    }
}

'java' 카테고리의 다른 글

백준 1436 영화감독 숲 자바 java  (0) 2024.01.16
백준 19532 수학은 비대면강의입니다. 자바 java  (0) 2024.01.16
백준 2789 블랙잭 java 자바  (0) 2024.01.16
백준 24313 자바 java  (1) 2024.01.15
백준 3009 네 번째 점  (0) 2024.01.12