풀이 각 자릿수의 숫자마다 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) References BOJ 1748 - 수 이어 쓰기 1