[Python] 알고리즘/Silver

[1748] 수 이어 쓰기 1 (Python)

-Becca- 2021. 11. 11. 14:49

[문제]

https://www.acmicpc.net/problem/1748

 

1748번: 수 이어 쓰기 1

첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.

www.acmicpc.net


알고리즘 분류는 수학, 구현 입니다.

N이 3자리 숫자라면 1 ~ 9 까지의 자릿수, 10 ~ 99 까지의 자릿수, 100 ~ N 까지의 자릿수를 더해야 합니다.

(1 ~ 9 까지는 9자리 / 10 ~ 99 까지는 90 * 2자리)


[코드]

import sys

N = int(sys.stdin.readline())

if N < 10:
    print(N)
else:
    sum = 0
    for i in range(len(str(N)) - 1):
        sum += 9 * (10 ** i) * (i + 1)

    print(sum + (N - 10 ** (len(str(N)) - 1) + 1) * len(str(N)))