[백준] 2231번: 분해합

짜장범벅·2022년 8월 2일
0

백준

목록 보기
13/26

1 문제

입력 받은 수와 각 자리 수를 합했을 때 특정수가 되는 조건을 만족하는 모든 수 중 최소값

2 Idea

1부터 일일히 조건 확인
단, 속도를 증가시키기 위해 1부터 반복을 하는게 아니라 입력받은 수/2부터 반복 시작

3 Code

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

#include <iostream>

int FindMinConstructor(const int N){
    int answer = 0;

    for (int i=N/2; i<N; ++i){
        //note that i is starting from N/2

        int divSum = i;

        const std::string i_str = std::to_string(i);

        for (int i=0; i<i_str.size(); ++i){
            divSum += i_str.at(i) - '0';
        }

        if (divSum == N){
            return i;
        }
    }

    return answer;
}

int main(){
    int N = 0;
    std::cin >> N;

    std::cout << FindMinConstructor(N) << std::endl;

    return 0;
}
profile
큰일날 사람

0개의 댓글