본문 바로가기
Algorithm/백준

백준 - 2231

flyon 2026. 3. 7.

2231. 분해합 풀이

난이도: Bronze II
문제 주소: https://www.acmicpc.net/problem/2231

문제 풀이

이 문제는 이게 뭐라고 쓸때없이 굉장히 오래 고민했다
괜히 뭔가 최대한 딱 맞게 효율적으로 풀어보겠다고 분해합을 탐색하는 구간을 수학적으로 찾아보겠다고 머리 싸매다가 굳이 그럴 필요가 있나? 싶어져서
그냥 1 ~ N까지 다 해보는거도 O(n) 수행시간이라 굉장히 효율적이란걸 깨달았다...
알고리즘 풀이가 오랜만이라 그런가 겨우 브론즈2에서 이럴지는 몰랐다

최종 코드

#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <math.h>
#include <string>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL); 
    cout.tie(NULL);

    int n;
    cin >> n;

    for (int i = 1; i < n; i++) {
        int sum = i;
        int temp = i;

        while (temp > 0) {
            sum += temp % 10;
            temp /= 10;
        }

        if (sum == n) {
            cout << i;
            return 0; 
        }
    }
    cout << 0;
    return 0 ;
}

'Algorithm > 백준' 카테고리의 다른 글

[백준] 1654 - 랜선 자르기  (0) 2026.03.13
[백준] 10989 - 수 정렬하기 3  (0) 2026.03.08
백준 - 15829  (0) 2026.03.08
백준 - 1008  (0) 2026.03.06
백준 - 3273  (0) 2024.12.26
profile
작심삼일을 무한으로 반복하는 지식세포 키우기
✏️ ⚙️