백준알고리즘
백준알고리즘:p2231 분해합
socialcomputer
2021. 3. 3. 23:29
반응형
분류: 브르트 포스
▶문제
▶코드
//백준알고리즘 제출시 클래스 이름은 Main으로 바꿔야 됨
package bruteForce;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
//부르트포스에 맞게 1부터 n까지 다 해보는 방법
public class p2231 {
public static void main(String args[]) {
int generator = 0;
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in));){
int n = Integer.parseInt(br.readLine());
for(int i=0; i<n; i++) {
if(findGenerator(i)==n) {
generator = i;
break;
}
}
}catch (Exception e) {e.printStackTrace();}
try(BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));){
bw.write(generator+"\n");
bw.flush();
}catch (Exception e) {e.printStackTrace();}
}
public static int findGenerator(int a) { //어떤 수의 분해합을 뱉어냄. ->a가 생성자
int original = a;
int sum = 0;
while(a>0){
sum += a%10;
a = a/10;
}
return original+sum;
}
}
▶좀 어려웠다... 문제를 어떻게 접근해야 할지 잘 몰라서
생성자의 생성자의 생성자... 를 찾는 건줄 알고 착각함
▶런타임 에러로 bufferedReader사용
try cath사용 방법을 살짝 바꿈.
▶public static int findGenerator(int a)
a의 분해합을 리턴함
-> 리턴된 분해합의 생성자는 a
그래서 0부터 n까지 findGenerator()에 넣은 후 n과 같은 수를 찾는 것임!
채점결과
링크 www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
반응형