728x90
반응형
https://www.acmicpc.net/problem/1748
1748번: 수 이어 쓰기 1
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
www.acmicpc.net
문제 해결
입력 값 n이 몇자리 수인지 구한다.
n이 x 자리 수이면 x-1 자리 수까지 임의의 i자리 수는 각각 9$\times 10^{i-1}$ 개가 있다.
예로들면 400인 3자리수를 보면 한자리 수는 1~9 9개가 있고 두자리수는 10~99 90개가 있다.
따라서 i자리 수 모두를 이어 붙이면 i $\times 9 \times 10^{i-1}$ 자리가 된다.
나머지 x자리 수 개수 (n- ($10^{x-1}$-1)) $\times$ x 를 붙이면 n까지 수를 이어스 쓴 자릿수가 된다.
CODE
import sys
input = sys.stdin.readline
n = int(input())
x = len(str(n))
ans = 0
a = 0
while x>a+1:
ans += 9*pow(10,a)*(a+1)
a += 1
ans += (n- pow(10,x-1)+1)*x
print(ans)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[Python] 백준 15655 N과 M (6) (0) | 2023.01.04 |
---|---|
[python] 백준 6064 카잉 달력 (0) | 2023.01.03 |
[python] 백준 14500 테트로미노 (1) | 2023.01.02 |
[python] 백준 1476 날짜계산 (0) | 2022.12.31 |
[Python] 백준 3085 사탕게임 (0) | 2022.12.31 |
댓글