n진수 게임 문제.
2진수 ~ 16진수 (n)에 따라, m명의 사람 중 p번 째인 튜브가 t개의 숫자를 말해야할 때, 그 숫자들을 string으로 return하여라.
- 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다.
- 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다.
programmers.co.kr/learn/courses/30/lessons/17687
코드 구현 in Python
def solution(n, t, m, p):
answer = ''
answers = [0]
keys = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F']
count = 1
# get the number array
while len(answers) <=t*m:
tmp = []
i = count
while i > 0 :
div = i // n
mod = keys[i % n]
i = div
tmp.append(mod)
answers.extend(tmp[::-1])
count += 1
# get Tube's number
while len(answer) <t:
answer +=str(answers [p-1])
p += m
return answer
- 숫자들을 n진수에 따라 특정 배열 (answers)에 먼저 each digit 넣어주고
- 그 배열에서 튜브 순서에 해당하는 숫자들을 이어 붙여 return.
다른 분들의 풀이
- 파이썬에서는 q, r = divmod(n, base)의 문법도 가능하다. 몫과 나머지를 동시에 구하는 방법!
'프로젝트들 > 코딩 테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 - 튜플 (Lv.2) in Python (0) | 2021.02.06 |
---|---|
[코딩테스트] 프로그래머스 - 전화번호 목록 (Lv.2) in Python (0) | 2021.02.06 |
[코딩테스트] 프로그래머스 - 가장 큰 수 (Lv2) in JS (0) | 2021.01.23 |
[코딩테스트] 프로그래머스 - 카펫 (Lv2) in JS (0) | 2021.01.22 |
[코딩테스트] 프로그래머스 - 소수 찾기 (lv2) in JavaScript (0) | 2021.01.21 |
댓글