import sys
from collections import deque
input = sys.stdin.readline
def bfs(node, number):
queue = deque()
queue.append((node, number))
while queue:
node, number = queue.popleft()
for n in [node+1, node*2, node*3]:
if n <= N and check[n] == 0:
if n == N:
return check[node]+1, number+[n]
queue.append((n, number+[n]))
check[n] = check[node]+1
N = int(input())
if N == 1:
print(0)
print(1)
else:
check = [0]*(N+1)
count, number = bfs(1, [1])
print(count)
print(*number[::-1]
'코딩테스트' 카테고리의 다른 글
[Python: BOJ 2589] 보물섬 (0) | 2021.08.03 |
---|---|
[Python: BOJ 2589] 토마토 (0) | 2021.08.03 |
[Python: BFS/DFS] BOJ12886 돌 그룹 (0) | 2021.07.28 |
[Python: 이분탐색] BOJ2110 공유기 설치 (0) | 2021.05.20 |
[python: DP] BOJ10844 - 쉬운 계단 수 (0) | 2021.05.17 |