개발 공부~
[SWEA D2 ] 1288. 새로운 불면증 치료법.py 본문
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제
호석이는 불면증에 걸렸다. 그래서 잠이 안 올 때의 민간요법 중 하나인 양 세기를 하려고 한다.
호석이는 1번 양부터 순서대로 세는 것이 재미없을 것 같아서 N의 배수 번호인 양을 세기로 하였다.
즉, 첫 번째에는 N번 양을 세고, 두 번째에는 2N번 양, … , k번째에는 kN번 양을 센다.
이렇게 숫자를 세던 호석이에게 잠은 더 오지 않고 다음과 같은 궁금증이 생겼다.
이전에 셌던 번호들의 각 자리수에서 0에서 9까지의 모든 숫자를 보는 것은 최소 몇 번 양을 센 시점일까?
- 입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 N (1 ≤ N ≤ 106)이 주어진다.
- 출력
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,
최소 몇 번 양을 세었을 때 이전에 봤던 숫자들의 자릿수에서 0에서 9까지의 모든 숫자를 보게 되는지 출력한다.
( 호석이는 xN번 양을 세고 있다. )
ex
예를 들어 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까지 모든 숫자를 보게 되므로 호석이는 양 세기를 멈춘다.
Solution
본 숫자 -> 한자리 수 (0~9)
중복이 없어야 함 -> set() 비교
T = int(input())
for tc in range(1,T+1):
n = int(input())
numbers = [i for i in range(10)]
answer =[]
i =0
while set(numbers) != set(answer):
i+=1
cur = n*i
for j in str(cur):
if j not in answer:
answer.append(int(j))
print(f'#{tc} {i*n}')
❗❗
문제를 잘 읽어보면 n번째를 출력하는 것이 아니라 모든 숫자를 보게 되는 즉, 마지막에 센 양의 숫자를 출력하는것이다.
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA D2] 2001. 파리 퇴치 (0) | 2024.07.01 |
---|---|
[SWEA D2] 2005. 파스칼의 삼각형.py (1) | 2024.07.01 |
[SWEA D2] 1859. 백만 장자 프로젝트 .py (1) | 2024.07.01 |
[SWEA D2] 1926. 간단한 369게임.py (0) | 2024.06.30 |
[SWEA D2] [1204. S/W 문제해결 기본] 1일차 - 최빈수 구하기 .py (0) | 2024.06.29 |