[Python] 백준 1038. 감소하는 수

4501 단어 백준백준

풀이

string 타입으로 숫자를 조합해 큐와 함께 풀었다.
처음 큐에 '0' ~ '9'까지 넣어두고
하나씩 꺼내며 0~9까지 숫자를 하나씩 덧붙여보며 붙였을 때 '감소하는 수'가 되는지 확인했다. (중간에 안되면 더 큰 숫자를 볼 필요가 없으므로 break했다.)

'감소하는 수'가 되면 total 카운트를 증가시키고 totalN 이 같아졌을 때 큐에 마지막으로 들어간 숫자를 출력하고 프로그램을 종료시켰다.

코드

from collections import deque
N = int(input())
q = deque(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])
total = 9
if N <= 9 : 
  print(q[N])
  exit(0)
  
while q:
  c = q.popleft()
  for i in range(0, 10):
    if int(c[-1]) <= i : break
    q.append(c+str(i))
    total += 1
    if total == N: 
      print(q[-1])
      exit(0)

print(-1)

좋은 웹페이지 즐겨찾기