본문 바로가기

알고리즘

2231_JAVA_분해합

브루트포스에 대한 두번째 문제다.

 

어렵지 않았다. 시간도 오래 걸리지 않았다.

package juhwan;

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

public class BOJ_2231 {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());
    ArrayList<Integer> arr = new ArrayList<>();

    for (int i = 1; i < N; i++) {
      if (divideSum(i) == N) {
        arr.add(i);
      }
    }

      if (arr.size() == 0) {
          System.out.println(0);
      } else {
          System.out.println(arr.get(0));
      }
  }

  private static int divideSum(int n) {
    String num = Integer.toString(n);
    int sum = 0;
    for (int i = 0; i < num.length(); i++) {
      sum += Integer.parseInt(String.valueOf(num.charAt(i)));
    }

    return n + sum;
  }
}

 

 

출력값이 0이 나와야 하는 입력값에 대해서 생각을 할 때 살짝 버퍼링걸렸지만 했당.

 

 

'알고리즘' 카테고리의 다른 글

Programmers_로또의 최고순위와 최저순위_Level1  (2) 2022.08.19
Programmers_같은숫자는싫어_Level1  (2) 2022.08.18
2798_JAVA_블랙잭  (2) 2022.07.28
1193_JAVA_분수찾기  (0) 2022.07.27
1009_JAVA_분산처리  (2) 2022.07.25