[2018 카카오블라인드] [3차] n진수 게임

4210 단어 카카오카카오

문제 링크

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

좋은 웹페이지 즐겨찾기