상세 컨텐츠

본문 제목

백준 2231번

백준 알고리즘 풀이

by 발발개발 2020. 12. 24. 14:17

본문

원본 : www.acmicpc.net/problem/2231

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

 

풀이

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;

public class Main {

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

		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int n = Integer.parseInt(reader.readLine());
		int disassembledSum[] = new int[n];
		
		for (int i = 1; i < n; i++) {
			disassembledSum[i] = i;
			for (int j = 0; j < String.valueOf(i).length(); j++) {
				disassembledSum[i] += Integer.parseInt(String.valueOf(String.valueOf(i).charAt(j)));
			}
		}
		
		ArrayList<Integer> result = new ArrayList<Integer>();
		for (int i = 0; i < disassembledSum.length; i++) {
			if (disassembledSum[i] == n) {
				result.add(i);
			}
		}
		
		if (result.isEmpty()) {
			writer.write("0");
		} else {
			writer.write(String.valueOf(result.get(0)));
		}
		
		writer.flush();
	}
	
}

'백준 알고리즘 풀이' 카테고리의 다른 글

백준 11653번  (0) 2021.01.04
백준 10757번  (0) 2021.01.04
백준 2798번  (0) 2020.12.24
백준 11729번  (0) 2020.12.24
백준 2447번  (0) 2020.12.24

관련글 더보기

댓글 영역