코딩테스트 연습 - [3차] n진수 게임 | 프로그래머스 (programmers.co.kr)

문제는 위 링크에서 확인하는것이 더욱 나을것같다.

 

일단 문제를 푸는데있어서 3가지 주요 부위로 나눴다.

첫번째는 divmod를 활용하여, N진수  String을 만들어주는 부분

두번째는 튜브가 말해야하는 길이보다 좀 더 길게, 그 순서까지 텍스트를 뽑으며 추가해주는 부분

세번째는 , 순서에 맞게 튜브가 말할 answer를 만드는 부분

# n진수 게임 (카카오 2018블라인드)
def solution(n,t,m,p):
    def getdiv(n, div):
        words = "0123456789ABCDEF"
        ans=""
        tmp=[]
        while n>=div:
            tmp.append(divmod(n,div)[1])
            n=divmod(n,div)[0]
        tmp.append(divmod(n,div)[1])
        while tmp:
            ans+=words[tmp.pop()]
        return ans

    start=0
    tmp = ''
    while len(tmp)< (t)*(m+1) :
        tmp +=  getdiv(start,n)
        start+=1
    
    answer = ""
    idx = p-1
    while len(answer) < t :
        answer+=tmp[idx]
        idx += m
    return answer

# n,t,m,p = 2,4,2,1
# n,t,m,p = 16,16,2,1
n,t,m,p = 16,16,2,2
solution(n,t,m,p) # n진법, 미리구할 수 t, 게임인원 m , 튜브의 순서 p

+ Recent posts