Baekjoon Online Judge
문제
민승이는 N(1 ≤ N ≤ 1,000,000)명의 학생들에게 양의 정수로 된 라벨을 붙이려고 한다. 하지만 모든 학생들은 숫자 L(0 ≤ L ≤ 9)이 자신의 라벨 숫자에 포함되길 원치 않는다.
문제는 학생들에게 숫자 L을 쓰지 않고 최소한 작은 N개의 양의 수 세트를 라벨링 할 때 학생들이 받는 라벨 중 가장 큰 수가 몇인지를 구하는 것이다.
입력
첫째 줄에 N과 L이 공백으로 구분되어 주어진다.
출력
첫째 줄에 민승이가 학생들에게 붙이는 라벨 중 가장 큰 수를 출력한다.
예제 입력 | 예제 출력 |
10 1 | 22 |
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt(); // N명의 학생들
int L = in.nextInt(); // 사용하지 않는 수
int count = 0; // 라벨이 붙은 학생의 수
int i; // 현재 라벨의 번호
for (i = 1; ; i++) {
boolean notWant = false; // 학생들이 해당 숫자를 원하는가?
// 숫자 검사
for (int j = i; j > 0; j /= 10) {
if (j % 10 == L) {
notWant = true;
break;
}
}
if (!notWant) count++;
if (count == N) break;
}
// 출력
System.out.println(i);
}
}
모든 학생들이 라벨을 받을 때까지 숫자들을 하나하나 검사해서 문제를 풀었다.
'백준 > JAVA' 카테고리의 다른 글
[Baekjoon/JAVA] 1731번 - 추론 (0) | 2023.01.22 |
---|---|
[Baekjoon/JAVA] 1718번 - 암호 (1) | 2023.01.21 |
[Baekjoon/JAVA] 1673번 - 치킨 쿠폰 (0) | 2023.01.19 |
[Baekjoon/JAVA] 15829번 - Hashing (0) | 2023.01.18 |
[Baekjoon/JAVA] 1672번 - DNA 해독 (1) | 2023.01.17 |