알고리즘/BOJ

백준 2231번 분해합

꾸준함. 2018. 6. 26. 21:53

문제 링크입니다: https://www.acmicpc.net/problem/2231


생성자를 1부터 시작해서 순차적으로 더해가면서 조건이 성립하는지 확인하는 Brute Force 문제였습니다.

특별한 알고리즘을 요구하지 않았기 때문에 쉬운 문제였습니다.


#include <iostream>

using namespace std;

 

int N;

 

int findCreator(void)

{

        int creator = 1; //1부터 시작

 

        while (1)

        {

                 int copy = creator;

                 int sum = creator; //합은 생성자와 생성자의 각 자리 숫자의 합

 

                 while (copy) //각 자리 숫자의 합을 구한다

                 {

                         sum += copy % 10;

                         copy /= 10;

                 }

 

                 //조건 성립시 혹은 생성자가 없을 경우

                 if (creator == N || sum == N)

                         break;

 

                 creator++;

        }

 

        return creator;

}

 

int main(void)

{

        cin >> N;

 

        int result = findCreator();

 

        if (result == N)

                 cout << 0 << endl;

        else

                 cout << result << endl;

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 5214번 환승  (0) 2018.06.27
백준 1058번 친구  (6) 2018.06.27
백준 1012번 유기농 배추  (2) 2018.06.26
백준 1507번 궁금한 민호  (0) 2018.06.26
백준 2667번 단지번호붙이기  (3) 2018.06.26