CodingTest/Programers

[programers] 프로그래머스 카카오(파이썬) : [3차] n진수 게임

JunJangE 2022. 1. 7. 02:42

문제

 

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

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

programmers.co.kr

알고리즘

- 반복문을 통해 모든 인원이 미리 구해야 하는 숫자를 n진수로 변환한다.

- while문을 통해 i를 n진수로 변환하고 변환한 수를 data에서 뽑아 temp에 추가한다.

- 변환한 진수는 reversed를 통해 거꾸로 바꿔야 비로소 우리가 원하는 진수가 된다.

- 변환한 진수는 answer에 더하고 필요한 수만큼 나눠 리턴한다.

코드

def solution(n, t, m, p):
    answer = '0'
    data = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]

    # 반복문을 통해 모든 인원이 미리 구해야하는 숫자를 n진수로 변환한다.
    for i in range(1, t * m):
        temp = []

        # i를 n진수로 변환
        while i > 0:
            i, mod = divmod(i, n)
            temp.append(data[mod]) # 변환한 수를 data에서 뽑아 temp에 추가

        # reversed를 통해 변환한 진수를 answer에 더한다.
        answer += "".join(reversed(temp))

    # 0을 포함해야하기 때문에 p-1부터 t*m까지 m번씩 나눈 수를 리턴
    return answer[p-1: t * m: m]

# print(solution(16,16,2,1)) # 예시 코드

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com