728x90
나의 풀이
def get_num(num, n):
digit = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
q, r = divmod(num, n)
if q:
return get_num(q, n) + digit[r]
else:
return digit[r]
def solution(n, t, m, p):
answer = ''
count = 0
while len(answer) < (t - 1) * m + p:
answer += get_num(count, n)
count += 1
return answer[:((t - 1) * m + p)][p - 1::m]
- digit을 list 대신 string이나 list('0123456789ABCDDEF')로 해줄 수도 있었을 듯
- slicing을 [p-1::m][:t] 로 처리할 수 있었을 듯 (더 깔끔)
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/파이썬] 땅따먹기 (0) | 2022.06.20 |
---|---|
[프로그래머스/파이썬] 다음 큰 숫자 (0) | 2022.06.20 |
[프로그래머스/파이썬] 올바른 괄호 (0) | 2022.06.20 |
[프로그래머스/파이썬] [3차] 파이령 정렬 (0) | 2022.06.20 |
[프로그래머스/파이썬] [3차] 압축 (0) | 2022.06.18 |