-
[1107] 리모컨BOJ 2022. 4. 25. 00:42
https://www.acmicpc.net/problem/1107
1107번: 리모컨
첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼
www.acmicpc.net
적당히 큰 범위를 잡아서, 고장난 버튼이 없어서 그 채널로 숫자를 입력해서 이동이 가능할때
그 채널의 자리수의 개수(string.length())와,
그 채널에서 n까지 가기 위해 필요한 +, -의 횟수(abs(n - i))를 최소로 갱신
#include <bits/stdc++.h>using namespace std;#ifdef ONLINE_JUDGEconstexpr bool local = false;#elseconstexpr bool local = true;#endifusing ll = long long;using pi = pair<ll, ll>;int n, m, ans;vector<char> v;int main(void) {if (!local) ios_base::sync_with_stdio(0), cin.tie(0);cin >> n >> m;v.resize(m);int i, j;for (i = 0; i < m; i++) cin >> v[i];ans = abs(100 - n);for (i = 0; i <= 1000000; i++) {string s = to_string(i);bool flag = true;for (char j : v) {if (find(s.begin(), s.end(), j) != s.end()) {flag = false;break;}}if (flag == false) continue;int cur = (int)s.length() + abs(n - i);ans = min(ans, cur);}cout << ans;return 0;}
'BOJ' 카테고리의 다른 글
[13900] 순서쌍의 곱의 합 (0) 2022.04.27 [2784] 가로 세로 퍼즐 (0) 2022.04.27 [14500] 테트로미노 (0) 2022.04.22 [3584] 가장 가까운 공통 조상 (0) 2022.04.15 [12789] 도키도키 간식드리미 (0) 2022.04.12