728x90
https://www.acmicpc.net/problem/1107
다른 방식으로 접근했다가 많이 헤맸다...
완전탐색으로 풀어야하는 문제였다..
최대 N이 500,000임으로 6글자의 가장 큰 수인 999,999까지 포문을 돌려서 해당 숫자일 경우의 이동 수를 세어준다!
고장난 버튼의 숫자가 있을 경우에는 그냥 다음 숫자로 넘겨버린다!!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
static int now = 100;
static int result = Integer.MAX_VALUE;
static PriorityQueue<Character> pq;
static int n;
static int m;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
m = Integer.parseInt(br.readLine());
pq = new PriorityQueue<>();
if (m > 0) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < m; i++) {
pq.add(st.nextToken().charAt(0));
}
}
int d = n - now;
int count=0;
for(int i=0;i<999999;i++) {
String str = String.valueOf(i);
boolean check=false;
for(int j=0;j<str.length();j++) {
if(pq.contains(str.charAt(j))) {
check=true; break;
}
}
if(check) continue;
count=str.length()+Math.abs(n-i);
result= Math.min(result, count);
}
System.out.println(Math.min(Math.abs(d), result));
}
}
'Java' 카테고리의 다른 글
[백준 16235] 나무 재테크 (JAVA) (0) | 2023.04.05 |
---|---|
[백준 9466] 텀 프로젝트 (JAVA) (0) | 2023.04.03 |
[백준 7569] 토마토 (JAVA) (0) | 2023.03.28 |
[백준 2636] 치즈 (JAVA) (0) | 2023.03.28 |
[백준 1826] 연료 채우기 (JAVA) (0) | 2023.03.28 |