알고리즘
[백준] 2231번 : 분해합 _ JAVA ( 주석 설명 ) 본문
1번
→ 입력받은 자연수까지 완전 탐색을 하면서 가장 작은 생성자를 구하는 문제
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //버퍼에서 데이터를 읽어오는 방식으로 속도가 빠르다.
int N = Integer.parseInt(br.readLine()); //자연수 N을 입력받는다.
int result = 0; //가장 작은 생성자를 담을 변수이다.
for(int i=1;i<=N;++i){ //분해합 = N + N을 이루는 각 자리수의 합
int sum = i; //분해합 중 'N'이다.
int num = i; //각 자리수의 합을 구하기 위한 변수이다.
while(num>0){
sum += num%10; //각 자릿수의 합을 더한다.
num/=10;
}
if(sum==N) { //입력받은 N의 생성자일 시, 그 값을 저장한다.
result = i;
break; //문제에서 가장 작은 생성자를 원하므로, 구한 즉시 break를 해준다.
}
}
System.out.println(result); //가장 작은 생성자를 출력한다.
}
}
'백준 - JAVA > 브루트 포스' 카테고리의 다른 글
[백준] 1436번 : 영화감독 숌 _ JAVA ( 주석 설명 ) (0) | 2023.02.15 |
---|---|
[백준] 1018번 : 체스판 다시 칠하기 _ JAVA ( 주석 설명 ) (0) | 2023.02.14 |
[백준] 7568번 : 덩치 _ JAVA ( 주석 설명 ) (0) | 2023.02.14 |
[백준] 2798번 : 블랙잭 _ JAVA ( 주석 설명 ) (0) | 2023.02.14 |