프로그래머스 - n진수 게임

Dean_Kang·2021년 7월 3일
0

프로그래머스

목록 보기
10/21

문제

이 문제는 2018년 카카오 블라인드 채용 코딩테스트에 출제되었던 문제이다. 이 문제는 369 게임과 비슷하게 숫자가 한문장 "12345678910"이런식으로 존재하면 이것을 n진수"011011100..." 로 변환해서 자신의 차례에는 어떤 숫자를 말해야 하는지를 t개 만큼 추출해내는 문제이다.

코드

def solution(n, t, m, p):
    answer = ''
    sentence = ''
    
    for i in range(t*m):
        sentence += TransNotation(i, n)
    
    for j in range(p-1, t*m, m):
        answer += sentence[j]
        
    return answer
 
 

TransNotation함수로 변환된 숫자들을 sentence에 저장해두고 반복문을 통해 자신의 차례 p-1(인덱스이기 때문에 -1)부터 m step씩 반복 해서 answer에 저장해준다.

def TransNotation(num, p):
    arr = "0123456789ABCDEF"
    ans = ''
    if num == 0:
        return '0'
    while num > 0:
        ans= arr[num % p] + ans
        num = num // p
    return ans

진수가 2,8,16 진수 이외에 3,4,5,7 진수 들도 입력이 가능하기 때문에 파이썬의 bin(), Oct(), Hex()와 같은 것을 사용하지 않고 직접 진수 변환을 해주었다.

profile
for the goal

0개의 댓글