[C++][백준 1490] 자리수로 나누기

PublicMinsu·2024년 7월 3일
0

문제

접근 방법

뒤에 0부터 9까지 숫자를 붙이면서 모든 경우를 확인해 준다.

코드

#include <iostream>
#include <queue>
using namespace std;
string N;
queue<string> q;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> N;
    q.push(N);

    while (!q.empty())
    {
        string cur = q.front();
        q.pop();

        bool isFind = true;
        for (int i = N.size(); i > 0; --i)
        {
            int j = (N[i - 1] - '0');

            if (j && (stoll(cur) % j))
            {
                isFind = false;
            }
        }

        if (isFind)
        {
            cout << cur;
            break;
        }

        for (char i = '0'; i <= '9'; ++i)
        {
            q.push(cur + i);
        }
    }
    return 0;
}

풀이

모든 자릿수로 나누어떨어지는지 확인할 때 가장 처음 입력받은 N에 해당하는 자릿수만 확인해 주면 된다.

profile
연락 : publicminsu@naver.com

0개의 댓글

관련 채용 정보