반응형

수 이어 쓰기 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

반응형

'백준 > Python' 카테고리의 다른 글

[백준 15650] N과 M (2) Python  (0) 2022.04.04
[백준 15649] N과 M (1) Python  (0) 2022.04.04
[백준 2075] N번째 큰 수 Python  (0) 2022.03.31
[백준 3190] 뱀 Python  (0) 2022.03.31
[백준 12904] A와 B Python  (0) 2022.03.31

+ Recent posts