티스토리 뷰

PS

백준 1790. 수 이어쓰기2

tose33 2022. 2. 10. 21:54

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
링크
«   2025/05   »
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
글 보관함