Engineering Note

[BOJ:1748] 수 이어 쓰기1 본문

Problem Solving/BOJ

[BOJ:1748] 수 이어 쓰기1

Software Engineer Kim 2022. 5. 9. 17:12

Link : https://www.acmicpc.net/problem/1748

Note

1부터 주어진 숫자N까지 연속으로 썼을 때 자리수를 구하는 문제다. 규칙을 찾아 점화식을 세워서 풀었다. 19까지의 한 자리수를 추가할 때는 당연히 자리수도 하나씩 늘어나고 1099까지 두 자리의 수를 추가할때는 2자리가 늘어난다.

주어진 N이 4자리의 수 1200라는 수라면 999까지는 (9-1+1)*1 + (99 - 10 +1) * 2 + (999-100+1)*3 (1200-1000+1)*4로 자리수를 구할 수 있다.

Code

import sys
input = sys.stdin.readline

num = input().rstrip()
n = len(num)
num = int(num)
total = 0

for i in range(1,n):
    total += ( 9*int('1'*(i)) - 10**(i-1)  +1)*(i)
total += (num-10**(n-1)+1)*n
print(total)

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ:1913] 달팽이  (0) 2022.05.10
[BOJ:1444] 별찍기 - 7  (0) 2022.05.10
[BOJ:1316] 그룹 단어 체커  (0) 2022.05.09
[BOJ:1475] 방 번호  (0) 2022.05.09
[BOJ:2941] 크로아티아알파벳  (0) 2022.05.08
Comments