본문 바로가기
카테고리 없음

[BOJ_JAVA] 백준 2231번 : 분해합 @달깅

by 달깅 2019. 11. 9.

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

 

 

아 이문제도 정말 오래걸렸다..

처음에 k라는 정수를 설정 안해주고 계속 n을 나누고 그러다가ㅠㅠ 무한루프를 돌아가지고..ㅠㅠㅠ

도움을 받고 왜 무한루프를 도는 지 알아내고 문제를 풀었더니..!

 

input이 1인 경우 1의 생성자가 없어서 문제가 생김!

그것도 처리해줬더니!

 

con<input일 때 break하는 걸로 해놨었는데 그렇ㅎ게 하면 안되나보다..!!

그래서 n==input 으로 바꿨더니 정답이 맞다고 나왔다.

반례 케이스를 알려주면 정말 좋을 것 같은데 그걸 안 보여주니까 어디서 틀렸는지 잘 모르겠다 하하..ㅎㅎㅎㅎㅎ

그래도 다 풀어냈다!

 


정답코드

 

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int input=sc.nextInt();
        int n=0;
        int k=0;
        int con=0;
        int sum=0;
        sc.close();

        while(con != input) {
            n++;
            k=n;
            if (input==1) {
                n=0;
                break;
            } else {
                sum+=k;
                while(k!=0) {
                    sum+=k%10;
                    k=k/10;
                }
                con=sum;
                sum=0;

                if (n==input) {
                    n=0;
                    break;
                }
            }
        }

        System.out.println(n);

 
        
    }
}

댓글