-
[BOJ / Python3] 1681번 : 줄 세우기Study (etc)/Problem Solving 2025. 9. 27. 16:59
문제 링크
문제
민승이는 N(1 ≤ N ≤ 1,000,000)명의 학생들에게 양의 정수로 된 라벨을 붙이려고 한다. 하지만 모든 학생들은 숫자 L(0 ≤ L ≤ 9)이 자신의 라벨 숫자에 포함되길 원치 않는다.
문제는 학생들에게 숫자 L을 쓰지 않고 최소한 작은 N개의 양의 수 세트를 라벨링 할 때 학생들이 받는 라벨 중 가장 큰 수가 몇인지를 구하는 것이다.
입력
첫째 줄에 N과 L이 공백으로 구분되어 주어진다.
출력
첫째 줄에 민승이가 학생들에게 붙이는 라벨 중 가장 큰 수를 출력한다.
예제 입력 1
10 1예제 출력 1
22힌트
민승이는 가장 작은 10개의 수 2, 3, 4, 5, 6, 7, 8, 9, 20, 22를 사용하여 라벨을 붙일 수 있다.
Solved.ac 레벨
브론즈 II
문제 풀이
n, l = map(int, input().split()) target = 1 labelCount = 0 while True: # 가능한 수의 갯수가 언제 n에 도달할지 모르므로 while문을 사용. if str(l) not in str(target): # l이 target 수에 포함이 되어있지 않은, 라벨링 가능한 수라면 # labelCount 1 증가 labelCount += 1 if labelCount == n: # 라벨링한 카운트가 n에 도달하면 해당 타겟 수를 출력하고 반복 종료 print(target) break target += 1 else: # 라벨링 가능한 수가 아니라면 타겟 수만 증가 target += 1'Study (etc) > Problem Solving' 카테고리의 다른 글
[BOJ / C++] 11003 : 최솟값 찾기 (1) 2025.10.08 [자료구조] 모노토닉 큐 (Monotonic Queue) (2) 2025.10.08 [BOJ / Python3] 2605 : 줄세우기 (1) 2024.11.29 [BOJ / C++] 2631번 : 줄세우기 (1) 2023.10.11 [BOJ / C++] 2141번 : 우체국 (0) 2023.10.11