
0부터 N을 만드는 게 아니고
N에서 0을 만드는 방식을 반대로 생각하면서 온다.
N = int(input())
ops = []
while N:
if N & 1:
N *= 2
ops.append('/')
elif N & 2:
N -= 2
ops.append('+')
else:
N //= 2
ops.append('*')
if len(ops) > 99:
print(-1)
else:
print(len(ops))
print(' '.join(f'[{op}]' for op in reversed(ops)))
마지막에 명령어 개수 출력 이후에 명령어를 출력했어야 했는데 그걸 안해서 계속 틀리고 왜 틀리지?라고 생각했었다 ㅠㅠ
아무튼 간단하게 완료