문제
호석이는 불면증에 걸렸다. 그래서 잠이 안 올 때의 민간요법 중 하나인 양 세기를 하려고 한다.
호석이는 1번 양부터 순서대로 세는 것이 재미없을 것 같아서 N의 배수 번호인 양을 세기로 하였다.
즉, 첫 번째에는 N번 양을 세고, 두 번째에는 2N번 양, … , k번째에는 kN번 양을 센다.
이렇게 숫자를 세던 호석이에게 잠은 더 오지 않고 다음과 같은 궁금증이 생겼다.
이전에 셌던 번호들의 각 자리수에서 0에서 9까지의 모든 숫자를 보는 것은 최소 몇 번 양을 센 시점일까?
예를 들어 N = 1295이라고 하자.
첫 번째로 N = 1295번 양을 센다. 현재 본 숫자는 1, 2, 5, 9이다.
두 번째로 2N = 2590번 양을 센다. 현재 본 숫자는 0, 2, 5, 9이다.
현재까지 본 숫자는 0, 1, 2, 5, 9이다.
세 번째로 3N = 3885번 양을 센다. 현재 본 숫자는 3, 5, 8이다.
현재까지 본 숫자는 0, 1, 2, 3, 5, 8, 9이다.
네 번째로 4N = 5180번 양을 센다. 현재 본 숫자는 0, 1, 5, 8이다.
현재까지 본 숫자는 0, 1, 2, 3, 5, 8, 9이다.
다섯 번째로 5N = 6475번 양을 센다. 현재 본 숫자는 4, 5, 6, 7이다.
현재까지 본 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9이다.
5N번 양을 세면 0에서 9까지 모든 숫자를 보게 되므로 호석이는 양 세기를 멈춘다.
입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 N (1 ≤ N ≤ $10^{6}$)이 주어진다.
출력
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,
최소 몇 번 양을 세었을 때 이전에 봤던 숫자들의 자릿수에서 0에서 9까지의 모든 숫자를 보게 되는지 출력한다.
( 호석이는 xN번 양을 세고 있다. )
예제
[입력] | [출력] |
5 1 2 11 1295 1692 |
#1 10 #2 90 #3 110 #4 6475 #5 5076 |
문제 해결 방법
- 입력 받은 수(@N@)와 @1@부터 @k@까지의 수를 곱하면서, 각 자리의 수를 집합(@set@) 객체에 넣어준 후, 집합 객체의 길이가 10이 될 때(@0@부터 @9@까지 모든 수가 들어갔을 때) @N@과 @k@의 곱의 값을 출력해준다.
N = int(input())
digits = set()
k = 0
while True:
k += 1
if len(digits) != 10:
num = str(N * k)
for ch in num:
digits.add(ch)
else:
break
코드
T = int(input())
for test_case in range(1, 1 + T):
N = int(input())
digits = set()
k = 0
while True:
k += 1
if len(digits) != 10:
num = str(N * k)
for ch in num:
digits.add(ch)
else:
break
print(f"#{test_case} {num}")
참고
- 난이도: D2
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA-16910][Python] 원 안의 점 (0) | 2023.10.24 |
---|---|
[SWEA-1204][Python] [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (1) | 2023.10.23 |
[SWEA-1284][Python] 수도 요금 경쟁 (1) | 2023.10.23 |
[SWEA-1285][C++] 아름이의 돌 던지기 (0) | 2023.10.23 |
[SWEA-1928][Python] Base64 Decoder (0) | 2023.10.23 |
[SWEA-1940][Python] 가랏! RC카! (1) | 2023.10.19 |
[SWEA-1945][Python] 간단한 소인수분해 (1) | 2023.10.19 |
[SWEA-1946][Python] 간단한 압축 풀기 (1) | 2023.10.19 |