728x90
문제
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까?
이 수의 자릿수를 구하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1748
입력
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
출력
첫째 줄에 새로운 수의 자릿수를 출력한다.
예제
# input
5
# output
5
# input
15
# output
21
# input
120
# output
252
문제 풀이
# 입력 받기
N = input()
# 정답 변수 초기화
answer = 0
# 1자리 수부터 N의 자리 수 - 1까지 각 자리 수의 자릿수 합을 계산
for i in range(1, len(N)):
answer += 9 * 10**(i-1) * i # i자리 수의 자릿수 합을 계산하여 더함
# N의 자리 수의 자릿수 합을 계산
answer += (int(N) - 10**(len(N)-1) + 1) * len(N)
print(answer)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90