프로그래머스 - 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개의 댓글

관련 채용 정보