풀이
숫자를 n진수로 바꾸어주는 convert 함수를 만들어 10진수로 0부터 N진수로 바꾸면서 num 리스트에 한 글자씩 추가했습니다.
이때, num 리스트의 길이가 t * m 즉, 참가하는 인원인 m명의 사람들이 t개씩 말하는 모든 경우를 저장하게 했습니다.
이를 활용하여 시작 순서인 p번째부터 m칸씩 건너뛰게 하여 정답을 구해 해결했습니다.
코드
def solution(n, t, m, p):
answer = ''
num = list()
i = 0
while len(num) <= (t * m):
num.extend(convert(i, n))
i += 1
idx = p - 1
for i in range(0, t):
answer += num[idx + (i * m)]
return answer
def convert(num, base):
temp = "0123456789ABCDEF"
q, r = divmod(num, base)
if q == 0:
return temp[r]
else:
# q를 base로 변환
# 즉, n진수의 다음 자리를 구함
return convert(q, base) + temp[r]
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python] 프로그래머스 보석 쇼핑 (0) | 2021.05.10 |
---|---|
[Python] 프로그래머스 추석 트래픽 (0) | 2021.05.02 |
[Python] 프로그래머스 파일명 정렬 (0) | 2021.04.25 |
[Python] 프로그래머스 압축 (0) | 2021.04.25 |
[Python] 프로그래머스 방금그곡 (0) | 2021.04.18 |