https://www.acmicpc.net/problem/1748
1748번: 수 이어 쓰기 1
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
www.acmicpc.net
💡 보통 자연수의 길이 찾듯이 문제를 풀면 시간초과 문제가 발생한다. 그래서 새로운 아이디어가 필요했다.
1~9까지의 자리수의 합은 9×1, 10~99까지의 자리수의 합은 90×2, 100~999까지의 자리수의 합은 900×3이된다.
따라서 받은 자리수-1만큼은 다 더하고 나머지 자릿수를 더해주는 방식을 사용했다.
1. 소스코드
N=int(input())
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)))
'백준문제풀이' 카테고리의 다른 글
[백준 문제풀이] 15649번 : N과 M(1) (0) | 2021.08.08 |
---|---|
[백준 문제풀이] 9095번 : 1, 2, 3 더하기 (0) | 2021.08.08 |
[백준 문제풀이] 6064번 : 카잉 달력 (0) | 2021.08.04 |
[백준 문제풀이] 3085번 : 사탕게임 (0) | 2021.07.30 |
[백준 문제풀이] 1476번 : 날짜 계산 (0) | 2021.07.29 |