티스토리 뷰
https://www.acmicpc.net/problem/1790
1790번: 수 이어 쓰기 2
첫째 줄에 N(1 ≤ N ≤ 100,000,000)과, k(1 ≤ k ≤ 1,000,000,000)가 주어진다. N과 k 사이에는 공백이 하나 이상 있다.
www.acmicpc.net
1의 자리수는 9개 있고, 자리수를 모두 합치면 9 * 1 개다
10의 자리수는 90개 있고, 자리수를 모두 합치면 90 * 2 개다.
100의 자리수는 900개 있고, 자리수를 모두 합치면 900 * 3 개다.
k번째 숫자가 뭔지 알아내기 위해 우선 k번째 숫자를 포함하는 수가 몇인지 찾았다.
1의 자리수 부터 시작해서 10의 자리수, 100의 자리수 ... 이런식으로 더해가다 보면 더한값이 k를 넘게 되는데
그때의 자리수가 바로 k번째 숫자를 포함하는 수의 자릿수이다.
몇의 자리수인지를 찾았으면 그 자리수부터 값을 증가시켜 보면 된다.
예를들어 k번째 숫자를 포함하는 수가 100의 자리수인 것을 알아냈다면
100부터 1씩 증가시켜보고, 100의 자리수는 190번째 부터 시작이고 자리수의 갯수가 3개 이므로 3씩 증가 시킨다
100, 103
101, 106
102, 109
...
이런식으로 증가시키면서 k가 될때를 찾는다.
'PS' 카테고리의 다른 글
프로그래머스. 블록 게임 (0) | 2022.02.19 |
---|---|
프로그래머스. 무지의 먹방 라이브 (0) | 2022.02.16 |
백준 15973. 두 박스 (0) | 2022.02.09 |
백준 6064. 카잉 달력 (0) | 2022.02.09 |
프로그래머스. 거스름돈 (0) | 2022.02.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Implementation
- MVC
- Unity
- Brute Force
- Kruskal
- two pointer
- 재귀
- permutation
- priority queue
- recursion
- graph
- back tracking
- 이분탐색
- Stack
- binary search
- C++
- Python
- Tree
- 조합
- BFS
- 자료구조
- floyd warshall
- DP
- C
- dfs
- db
- Dijkstra
- Spring
- greedy
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함