Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- Stack
- 윤성우 열혈자료구조
- coding test
- Selection Sorting
- Serialization
- s
- buffer
- Algorithm
- insertion sort
- 윤성우의 열혈 자료구조
- 메모리구조
- list 컬렉션
- 혼자 공부하는 C언어
- 알기쉬운 알고리즘
- 이것이 자바다
- C 언어 코딩 도장
- Graph
- R
- datastructure
- JSON
- 이스케이프 문자
- C programming
- stream
Archives
- Today
- Total
Engineering Note
[BOJ:1748] 수 이어 쓰기1 본문
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