풀이 과정
진법 변환을 할때 2진법~16진법까지 가능하므로 매칭되는 배열을 만들어줌. [0] = 0, ... [10] = A, [11] = B, ... , [15] = F
나누었을 때 나머지들만 붙여서 진법 변환
최대 인원이 100명이고, 튜브가 구할 숫자의 최대 갯수는 1000개이므로 여유있게 10만개정도의 숫자 진법 변환
이후 튜브의 순서에 맞추어서 값들을 하나씩 꺼내오면 된다.
def convert(num, scale):
match = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F']
if num == 0:
return '0'
result = ''
while num > 0:
result = match[num % scale] + result
num = num // scale
return result
def solution(n, t, m, p):
answer = ''
temp = ' '
for i in range(0, 100000): # 여유있게 10만개정도 변환해서 붙여둠
temp += convert(i, n)
for i in range(p, len(temp), m): # 문자열 붙임
answer = answer + temp[i]
if len(answer) == t:
break
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글
[ Lv 2 ] 거리두기 확인하기 (0) | 2021.07.08 |
---|---|
[ Lv 2 ] 다음 큰 숫자 (0) | 2021.07.08 |
[ Lv 2 ] [3차] 파일명 정렬.py (0) | 2021.07.06 |
[ Lv 2 ] [3차] 압축 (0) | 2021.07.05 |
[ Lv 2 ] 올바른 괄호 (0) | 2021.07.05 |