https://programmers.co.kr/learn/courses/30/lessons/17687
answer의 길이가 t가 될때까지 N진수를 구하고, 튜브의 순서일 때 answer에 값을 추가하도록 했다.
N진수를 반환하는 함수에서는 temp를 설정하여 나머지가 10이상일때를 처리하도록 하였다.
# N진수 함수
def Nnumber(N, number):
temp = "0123456789ABCDEF"
q, r = divmod(number, N)
if q == 0:
return temp[r]
else:
return Nnumber(N, q) + temp[r]
# 진법 n, 미리 구할 숫자의 갯수 t, 게임에 참가하는 인원 m, 튜브의 순서 p
def solution(n, t, m, p):
answer = ''
turn, num = 0, 0
# answer의 길이가 t가 될때까지
while len(answer) < t:
# N진수 구하기
result = Nnumber(n, num)
for r in result:
# 튜브의 순서일 때 answer에 값을 추가
if (turn % m) == p-1:
answer += r
if len(answer) == t:
break
turn += 1
num += 1
return answer