서비스 기획자 기록

[백준] 2231번 : 분해합 - Java 본문

백준

[백준] 2231번 : 분해합 - Java

주니5947 2025. 1. 16. 16:49

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


 


    • 문제



    • 풀이

- 브루트포스 알고리즘을 활용하여 1부터 다 시도해서 조건에 맞으면 반복문을 종료한다.

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int result = 0;

		for (int i = 1; i < N; i++) {
			int num = i;
			int sum = 0;
			
			while (num != 0) {
				sum += num%10;
				num /= 10;
			}
			
			if (sum + i == N) {
				result = i;
				break;
			}
		}
		
		System.out.println(result);
		sc.close();
	}
}

 

for문에서 1부터 입력받은 수보다 작은 숫자까지 조건에 맞게 더한다. 

while문에서는 입력받은 수를 계속 10으로 나누며 마지막 자리를 분리해서 sum에 더하는 식으로 갱신한다.

if문에 걸리면 반복을 종료하고 그렇지 않으면 반복을 계속한다.

'백준' 카테고리의 다른 글

[백준] 1259번 : 팰린드롬수 - Java  (2) 2025.01.16
[백준] 15829번 : Hashing - Java  (0) 2025.01.16
[백준] 2798번 : 블랙잭 - Java  (0) 2025.01.10
[백준] 2292번 : 벌집 - Java  (0) 2025.01.10
[백준] 1978번 : 소수 찾기 - Java  (0) 2025.01.10