1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <iostream> #include <cmath> #include <algorithm> using namespace std; bool broken[10] = {false,}; int len_chk(int N); //길이와 버튼 누를수 있는 지 확인 int main(){ int N, M,d; cin >> N >> M; for(int i = 0; i < M; i++){ int tmp; cin >> tmp; broken[tmp] = true; } d = abs(100-N); for(int i = 0; i < 1000001; i++){ int length = len_chk(i); if(length){ d = min(d, length+abs(i-N)); } } cout << d; } int len_chk(int N){ int length = 0; if(N==0) return broken[0] ? 0:1; while(N){ length++; if(broken[N%10]) return 0; N/=10; } return length; } | cs |
반응형
'프로그래밍 > 문제풀이' 카테고리의 다른 글
백준 10844 (쉬운 계단 수) (0) | 2018.11.06 |
---|---|
백준 2156(포도주 시식) (0) | 2018.11.03 |
백준 1652 (누울 자리를 찾아라) (0) | 2018.11.03 |
백준 9095 (1,2,3 더하기) (0) | 2018.10.31 |
백준 1463(1로 만들기) (0) | 2018.10.29 |