이 문제를 처음 보자마자 이진수가 떠올랐다. 1 2 4 8 ... 등의 수가 있다면 다음 자릿수 - 1까지의 모든 수를 만들 수 있기 때문이다.
그러나 이 문제는 그렇게 풀 수 없다. 알약이 연속된 자리에 위치해 있어야 하기 때문이다.
여기서 이 문제를 만든 사람의 굉장히 악질적인 면모가 보이는데, 등차수열, 이진수같은 이상한 생각을 하게 해놓고서 를 500으로 준 것이다.
이래놓으면 놀랍게도 1000진법으로 문제를 해결할 수 있다.
N은 최대 100 (1000) 이므로 1000의 자릿수 1000개, 1의 자릿수 1000개만 만들어놓으면 그 어떤 1,000,000까지의 수도 만들 수 있다.
역시 나코더... 쉽지 않다.
코드
print(1999)
print('1 ' * 999, '1000 ' * 1000)