D - Lunlun Number
ABC161のD問題。
各ルンルン数の組み合わせについてqueueを使って回していく感じになる。 bfsまでは行かないけど、bfsチックな解き方を覚えているとできるタイプの問題かな。
from collections import deque
def solve():
K = int(input())
dq = deque()
# 一桁のケース
for i in range(9):
dq.append(i+1)
for i in range(K):
num = dq.popleft()
if num % 10 != 0:
dq.append(num*10+num % 10-1)
dq.append(num*10+num % 10)
if num % 10 != 9:
dq.append(num*10+num % 10+1)
print(num)
if __name__ == "__main__":
solve()