[코테] 백준 브루트포스 1748번 문제
1748번 : 수 이어 쓰기 1
문제 링크
https://www.acmicpc.net/problem/1748
문제 설명
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223…
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
출력
첫째 줄에 새로운 수의 자릿수를 출력한다.
문제풀이
1자리 수, 2자리 수, … 순차적으로 증가하면서 N까지의 자릿수의 합을 구하면 된다.
N = int(input())
len(str(N))
result = 0
length = len(str(N))
for i in range(1, length) :
result += 9 * (10 ** (i-1)) * i
result += len(range(10 ** (length-1), N+1)) * length
print(result)
Comments