브루트포스 알고리즘을 적용해야겠다는 생각이 먼저 들었다. 일일이 하나하나 전부 확인해서 최적의 해를 찾아내는 것이 이 문제의 해답이다.
처음에 100%가 나와서 정답으로 알았는데 자세히 보니 맞왜틀이 나와서 어디가 문제인지 모르고 있었다가 질문 게시판에 있는 맞왜틀 사람들이 간과한 사항을 다시 읽어보고 코드를 조금 수정했더니 정답을 확인할 수 있었다.
N = int(input())
MAX_lst = 0
result = []
for i in range(N, -1, -1):
lst = []
lst.append(N)
lst.append(i)
t = 0
while True:
if lst[t] - lst[t+1] < 0:
if MAX_lst < len(lst):
MAX_lst = len(lst)
result = lst
else:
break
else:
lst.append(lst[t] - lst[t+1])
t += 1
print(MAX_lst)
print(*result)