아이디어는 어렵지 않았는데, 모든 경우의 수를 문자열로 만드니 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;
}
백준 10714 케이크 자르기 2 혼내주기 (0) | 2021.08.01 |
---|---|
백준 14502 연구소 혼내주기 (0) | 2021.08.01 |
백준 7662 이중 우선순위 큐 혼내주기 (0) | 2021.08.01 |
백준 11049 행렬 곱셈 순서 혼내주기 (0) | 2021.08.01 |
백준 16434 드래곤 앤 던전 혼내주기 (0) | 2021.07.26 |
댓글 영역