백준/Python

[백준 1748] 수 이어 쓰기 1 Python

_졍_ 2022. 4. 4. 17:17
반응형

수 이어 쓰기 1

티어 : Silver 3
시간 제한 : 0.15 초 (Python 0.5 초)
메모리 제한 : 128 MB
알고리즘 분류 : 수학, 구현

 

문제

1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.

1234567891011121314151617181920212223...

이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.

 

입력

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

 

출력

첫째 줄에 새로운 수의 자릿수를 출력한다.

 

예제 입출력


Algorithm

1. 입력받은 숫자의 자리수 구하기
2. 1 자리수면 입력받은 숫자 print
3. 2 자리수면 9 + ((N-10) + 1) * 2
4. 3 자리수면 9 + 90 + ((N-100) + 1) * 2
...

 

Code

N = input()
answer = 0
for i in range(len(N)-1):
    answer += 9 * (10**i) * (i+1)
answer += (((int(N)-10**(len(N)-1)) + 1) * len(N))
print(answer)

메모리: 30860 KB
시간: 68 ms

반응형