1107 : 리모컨

풀이

그냥 다 돌려보자!

코드

#include <stdio.h>

int n, m, i, k, ans, res;
bool chk[10];

int hi(int a) {
	int cnt = 0;
	while (a) {
		if (chk[a % 10]) return -1;
		a /= 10;
		cnt++;
	}
	return cnt;
}

int main() {
	scanf("%d %d", &n, &m);
	for (i = 0; i < m; i++) scanf("%d", &k), chk[k] = true;

	ans = n - 100;
	if (ans < 0) ans = -ans;
	if (!chk[0]) ans = ans < n + 1 ? ans : n + 1;
	for (i = n; i < 1111111; i++) {
		res = hi(i);
		if (res > 0) {
			res += i - n;
			ans = ans < res ? ans : res;
			break;
		}
	}
	for (i = n; i > 0; i--) {
		res = hi(i);
		if (res > 0) {
			res += n - i;
			ans = ans < res ? ans : res;
			break;
		}
	}

	printf("%d", ans);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-05-02 16:53

Read more posts by this author