Algorithm (PS)

[백준] 14382번 숫자세는 양 Python

minjiwoo 2022. 9. 26. 13:56
728x90

https://www.acmicpc.net/problem/14382

 

14382번: 숫자세는 양 (Large)

예제 입출력 1번에 대해서, 2 × 0 = 0, 3 × 0 = 0 등등으로 이어지므로, 블리트릭스는 0외에는 다른 숫자를 기록할 수 없을 것이며, 따라서 영원히 잠에 들 수 없다. 예제 입출력 2번의 경우, 1, 2, 3, 4,

www.acmicpc.net

실버 4 문제로 어려운 문제는 아니다 
그런데 오히려 좀 까다롭다고 느낀건 문자열을 출력할 때 

print('Case #'+str(i+1)+": INSOMNIA")

쉼표 (,) 로 변수를 넣으면 공백열이 생긴다는걸 깨달았다 
그래서 쉼표가 아니라 + 로 문자열로 만들어서 붙여줘야지 공백열 없이 문제가 원하는대로 출력할 수 있다 

나는 딕셔너리 자료형을 이용해서 숫자가 등장할 때마다 value를 1 로 올려주고, value들의 합이 10이면 while문을 빠져나가도록 했다 

# 14382
t = int(input())

for i in range(t):
    check = {}
    n = int(input())
    now = n
    if n == 0:
        print('Case #'+str(i+1)+": INSOMNIA")
    else:
        count = 1
        while True:
            temp = str(now)
            for j in temp:
                if int(j) not in check:
                    check[j] = 1
                else:
                    continue
            if sum(check.values()) == 10:
                print("Case #"+str(i+1)+ ": "+str(now)) # , 로 하면 공백열이 생겨버리므로 + 를 이용해서 문자열을 만들어야 함
                break
            count += 1
            now = n * count
728x90