[TIL]Day 166

이재희·2021년 5월 15일
0

TIL

목록 보기
166/312

파이썬 list에서 ::로 슬라이싱하기
::n은 n만큼 점프하겠다는 의미
리스트에서 n의 배수 인덱스만 추출됨
m::n은 m인덱스부터 n점프

a = [1,2,3,4,5,6,7,8,9,10,11,12]
print(a[::2]) #[1, 3, 5, 7, 9, 11]
print(a[1::3]) #[2, 5, 8, 11]

이를 이용한 문제
프로그래머스 n진수 게임

def solution(n,t,m,p):
    answer = ''
    for i in range(t*m):
        answer += convert(i,n)
    return answer[p-1::m][:t]

def convert(n,base):
    T = "0123456789ABCDEF"
    q,r = divmod(n,base)
    if q == 0:
        return T[r]
    else:
        return convert(q,base) + T[r]

이용하지 않은 코드

def solution(n, t, m, p):
    answer = ''
    num = 0
    pull_text = ''
    cnt = 0
    time = 0
    while t:
        conv = convert(num,n)
        pull_text += conv
        conv_len = len(conv)
        cnt += conv_len
        while m*time+(p-1) < cnt and t != 0:
            answer += pull_text[m*time+(p-1)]
            t -= 1
            time += 1
        num += 1
    return answer

def convert(n,base):
    T = "0123456789ABCDEF"
    q,r = divmod(n,base)
    if q == 0:
        return T[r]
    else:
        return convert(q,base) + T[r]
profile
오늘부터 열심히 산다

0개의 댓글