- 반복문으로 하나하나 처리해주면 시간초과가 발생할 것 같아서 다른 방법을 오랫동안 고민하고 종이에 써가면서 코드를 작성했다.
해결 방법
1 ~ 9까지의 수를 이용하여 만들어지는 수의 길이 : (9 - 1 + 1) 1 = 9
10 ~ 99까지의 수를 이용하여 만들어지는 수의 길이 : (99 - 10 + 1) 2 = 180
100 ~ 999까지의 수를 이용하여 만들어지는 수의 길이 : (999 - 100 + 1) * 3 = 2700
- 위의 해결 방법을 이용하여 코드를 작성하여 해결할 수 있었다.
N = int(input())
cnt = len(str(N)) - 1
total = 0
for i in range(cnt):
total += 9 * (10 ** i) * (i+1)
total += (N - (10 ** cnt) + 1) * (cnt + 1)
print(total)