파이썬 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]