알고리즘

2231_JAVA_분해합

주탱2 2022. 7. 29. 18:01

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

 

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

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이 나와야 하는 입력값에 대해서 생각을 할 때 살짝 버퍼링걸렸지만 했당.