슈콩

[BOJ] 백준 1790 수 이어쓰기 2 본문

Algorithms/Baekjoon

[BOJ] 백준 1790 수 이어쓰기 2

shukong 2025. 9. 11. 18:58

[문제]

https://www.acmicpc.net/problem/1790

 

 

[소스 코드]

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws IOException {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	StringTokenizer st = new StringTokenizer(br.readLine());
    	int n = Integer.parseInt(st.nextToken());
    	int k = Integer.parseInt(st.nextToken());
    	long length = 0;
    	long digit = 1;
    	long start = 1;
    	while(true) {
    		long digitSum = 9 * digit * start;
    		if(k<=length + digitSum) break;
    		length += digitSum;
    		digit++;
    		start *= 10;
    	}
    	long offset = k - length - 1;
    	long num = start + offset / digit;
    	if(num>n) {
    		System.out.println(-1);
    		return;
    	}
    	int numIdx = (int)(offset % digit);
    	String numStr = String.valueOf(num);
    	System.out.println(numStr.charAt(numIdx));
	}
}

'Algorithms > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 1963 소수 경로  (0) 2025.09.12
[BOJ] 백준 1929 소수 구하기  (0) 2025.09.12
[BOJ] 백준 1747 소수&팰린드롬  (0) 2025.09.11
[BOJ] 백준 1735 분자 합  (0) 2025.09.10
[BOJ] 백준 17103 골드바흐 파티션  (0) 2025.09.10