백준 1790 수 이어 쓰기2 (Python,PyPy)

Joowan Park·2023년 7월 29일
0

코딩

목록 보기
9/28
#1790번 수 이어쓰기 2
import sys
import math
input = sys.stdin.readline

N,k = map(int,input().split())

a = len(str(N))
length_N = 0

#출력 가능인가 판정#
if a == 1:
    length_N += N
else:
    for i in range (1,a+1):
        length_N += 9 * (10 ** (i-1)) * i
    length_N += (N - (10 ** a) + 1) * a

#몇번째 digit에 포함되는지 확인
digit = 1
length = 1
while True:
    if length <= k and k < length + 9 * digit * (10 ** (digit-1)) :
        break
    else:
        length += 9 * digit * (10 ** (digit-1))
        digit += 1
#판정 후 계산#
if k <= length_N:
    for i in range (1,digit):
        k -= 9 * (10 ** (i-1)) * i
    m = 0
    while True:
        if m * digit + 1 <= k and k <= (m + 1) * digit:
            break
        else:
            m += 1
    b = k % digit
    c = 10 ** (digit-1) + (m)
    print(str(c)[b-1])

else:
    print(-1)

Pypy3님이 최고십니다

profile
Complex Dynamics에서 탈출한 원숭이

0개의 댓글