https://school.programmers.co.kr/learn/courses/30/lessons/17687
처음에는 n진수를 하나씩 세는 형태로 가려다가 뇌가 10 진수 이외의 숫자 세기 체계를 받아들이지 못하는 거 같아 포기했다. 대신, 10 진수를 n진수로 변환하는 함수를 따로 구현했다. 이때 유의할 점은 11 진수부터 16 진수인데, 10 ~ 15는 'A'~'F'로 처리해야 하기 때문에 16 진수 변환 내장 함수 hex를 따로 사용했다.
def getNbase(n, q):
if n == 0: return '0'
rev_base = ''
while n > 0:
n, mod = divmod(n, q)
rev_base += hex(mod)[2:].upper()
return rev_base[::-1]
def solution(n, t, m, p):
num = 0
cnt = 0
res = ''
while num <= t * m:
nBaseNum = getNbase(num, n)
for x in nBaseNum:
if (cnt // m) == t: break
if cnt % m == (p - 1):
res += x
cnt += 1
num += 1
return res
divmod(n, q)
는 n을 q로 나누었을 때 몫과 나머지 튜플을 리턴하는 함수라고 한다