import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class B1107 {
static List<Integer> list = new ArrayList<>();
private static int chk(int num) { // 해당 숫자가 list에 포함 되어있는지 ? 버림 : 숫자 길이 카운트
int length = 0;
if(num ==0) return list.contains(num) ? 0 : 1;
while(num > 0) {
if(list.contains(num % 10)) return 0;
length++;
num /= 10;
}
return length;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int channel = scan.nextInt(), m = scan.nextInt();
while(m-- > 0) {
list.add(scan.nextInt());
}
int min = Math.abs(channel - 100); // +, - 버튼으로만 이동했을 때
for(int i = 0; i<= 1000000; i++) {
int length = chk(i);
if (length > 0) min = Math.min(min, Math.abs(channel - i) + length); // min 갱신
}
System.out.println(min);
}
}
1. 단순히 +, - 로만 N까지 이동하는 경우
2. N까지 가장 근접한 후 +, - 로 이동하는 경우
+, - 는 어차피 Math.abs로 씌우면 신경 쓰지 않아도 된다
https://geehye.github.io/baekjoon-1107/#
위 블로그에서 도움받아서 다행히 쉽게 이해하게 됐다
'알고리즘' 카테고리의 다른 글
<백준> 11404번 자바 알고리즘 (0) | 2021.10.11 |
---|---|
<백준> 1389번 자바 알고리즘[플로이드 와샬] (0) | 2021.10.09 |
<백준> 1074번 자바 알고리즘 (0) | 2021.07.26 |
<백준> 15829번 파이썬 알고리즘 (0) | 2021.07.13 |
<백준> 11866번 파이썬 알고리즘 (0) | 2021.07.13 |