문제 링크입니다: 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 |