풀이
각 자릿수의 숫자마다 1의 자릿수는 1의 길이, 2의 자릿수는 2의 길이, 3의 자릿수는 3의 길이… 를 가진다.
배열에 각 자릿수의 갯수를 저장하고 주어진 정수에 따라 자릿수의 갯수와 인덱스를 곱하여 정답에 더해준다.
소스코드
import sys
input = sys.stdin.readline
nine = [0, 9, 90, 900, 9000, 90000, 900000, 9000000, 90000000, 100000001]
ans = 0
n = int(input())
for i in range(1, 10):
if n - nine[i] < 0:
ans += n * i
break
else:
ans += nine[i] * i
n -= nine[i]
print(ans)