응애개발자
article thumbnail
728x90

1. 문제

https://www.acmicpc.net/problem/2231

2. 접근 방법

1. N이 100일때 이 분해합은 86(86+8+6) 이 됩니다. 

2. 결국 분해합을 구하려면 N보다 작은 수들로 이루어져 있는데 각 자리가 최대 9까지 나올수 있으므로 총 자리수 * 9 작은 값부터 N까지 완탐방식으로 구하면 됩니다.

 

3. 코드

<java />
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private static BufferedReader br; private static StringBuilder sb; private static int N; private static int nLength; //입력 public static void input() throws Exception{ br = new BufferedReader(new InputStreamReader(System.in)); sb = new StringBuilder(); N = Integer.parseInt(br.readLine()); nLength = String.valueOf(N).length(); } //과정 public static void process(){ for(int i = N-nLength*9; i < N ; i++){ int value = i; int sum = i; while ( value%10 != 0){ sum += value%10; value = value/10; } if(sum == N){ System.out.println(i); return; } } System.out.println(0); } public static void main(String[] args) throws Exception{ input(); process(); } }
profile

응애개발자

@Eungae-D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!