욤미의 개발일지

[SWEA D2] 1288 새로운 불면증 치료법(Python) 본문

Coding Test/SWEA

[SWEA D2] 1288 새로운 불면증 치료법(Python)

욤미 2022. 11. 10. 13:17
728x90
반응형

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

문제

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이

  • N의 배수 번호인 양을 센다.
    • 즉, 첫 번째에 N번 양, 두 번째에 2N번 양, … , k번째에 kN번 양을 센다.
  • 이전에 셌던 번호들의 각 자리수에서 0에서 9까지의 모든 숫자를 보는 것은 최소 몇 번 양을 센 시점일까?
  • 예시
    • 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: 현재 본 숫자 6, 4, 7, 5 → 지금까지 본 숫자 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    • 5N에서 양세기 멈춤
T = int(input())
for test_case in range(1, T + 1):
    n = int(input())
    num = set()
    count = 0
    while len(num) != 10:
        count += 1
        num.update(set(str(n * count))) # set으로 만들어서 중복 제거
    print(f"#{test_case} {n * count}")
728x90
반응형
Comments