상세 컨텐츠

본문 제목

백준 1107 리모컨 혼내주기

혼내주기

by lazz 2021. 8. 1. 22:31

본문

반응형

 

아이디어는 어렵지 않았는데, 모든 경우의 수를 문자열로 만드니 stoi 함수가 빈 문자열일 때 에러가 나서 고치는데 꽤나 고생했다.

 

#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0), cin.tie(0)
using namespace std;

string target;
int n, answer;
bool broken[10];

void input() {
    fastio;
    int numBroken, num;
    cin >> target >> numBroken;
    n = stoi(target);
    for(int i = 0; i < numBroken; ++i) {
        cin >> num;
        broken[num] = true;
    } 
}

void d(string& num) {
    for(int i = 0; i < 10; ++i) {
        if(broken[i]) continue;
        string newNum = num + to_string(i);
        answer = min(answer, (int)newNum.size() + abs(n - stoi(newNum)));
    
        if(newNum.size() < 6) 
            d(newNum);
    }
}

int main() {
    input();

    answer = abs(n-100);

    string num = "";
    d(num);
    cout << answer;
}
반응형

관련글 더보기

댓글 영역