Problem Solving/Baekjoon
[백준] 5671 호텔 방 번호 - Brute Force / Java
graycode
2023. 7. 24. 21:16
• 문제 링크
5671번: 호텔 방 번호
선영이는 집 호수에 반복되는 숫자가 있는 경우에는 그 집에 사는 사람에게 불운이 찾아온다고 믿는다. 따라서, 선영이는 838호나 1004호와 같이 한 숫자가 두 번 이상 들어있는 집에는 절대 살지
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static boolean[] duplicate = new boolean[10];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
String input;
while ((input = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(input);
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken()) + 1;
int cnt = 0;
for (int i = n; i < m; i++, Arrays.fill(duplicate, false))
if (check(i)) cnt++;
sb.append(cnt).append("\n");
}
bw.write(sb.toString());
bw.flush();
}
private static boolean check(int num) {
do {
int tmp = num % 10;
if (duplicate[tmp]) return false;
duplicate[tmp] = true;
} while ((num /= 10) > 0);
return true;
}
}