코딩테스트

[프로그래머스][KAKAO_BLIND][2018] N진수 게임

pythaac 2021. 9. 3. 21:12
프로그래머스 코딩테스트 고득점 Kit의 문제입니다.

https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

문제

https://programmers.co.kr/learn/courses/30/lessons/17687

 

코딩테스트 연습 - [3차] n진수 게임

N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0

programmers.co.kr

 

내가 작성한 코드

def get_num(n, k=0):
    i = k
    s = str(k)
    gen = get_num(n, 1)
    while True:
        yield s
        if i+1 == n:
            s = next(gen) + '0'
            i = 0
        else:
            i += 1
            s = s[:-1] + str(hex(i)[2:]).upper()



def solution(n, t, m, p):
    answer = ''
    gen = get_num(n)
    turn = 0
    p -= 1
    while len(answer) < t:
        for c in next(gen):
            if turn == p:
                answer += c
            turn = (turn + 1) % m
            if len(answer) == t:
                break
    return answer
  • 진법
    • 2진수, 8진수, 16진수가 아닌 2~16진수 모두 고려해야한다
    • n진수가 고정이 아니므로, generator의 재귀로 n이 넘을 때마다 새로운 자리수 추가

 

다른 사람이 작성한 코드

None

 

기억해야할 것

  • 자리수에 generator가 편한 것 같다