티스토리 뷰

728x90

programmers.co.kr/learn/courses/30/lessons/17687?language=python3

 

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

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

programmers.co.kr

- 접근법

10진수로 0부터 X까지 숫자를 각 진법 별로 변환하여 나오는 자리수 마다 번갈아가면서 외치는 게임이다.

이때 플레이의 수, 내가 첫턴에 외치는 순서, 몇턴까지 나의 숫자를 알고 싶은지 그리고 진법이 주어진다.

 

튜브가 t번 외칠 숫자, 즉 t턴 동안 게임에 사용되는 숫자의 길이는 최대 = 게임의 참여하는 인원 m * t턴이다.

따라서 n진법들의 0부터 X까지의 수를 길이가 m*t가 될 때 까지 미리 이어붙이고 튜브의 턴에 나올 수들을 출력하면 된다.

 


- 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def change_number(n,number) :
    target="0123456789ABCDEF"
    c_num=""
    if number==0 : return "0"
    while number>0 :
        c_num+=target[number%n]
        number//=n
    c_num=c_num[::-1]
    return c_num
def solution(n, t, m, p):
    answer = ''
    ordered_num=""
    i=0
    while len(ordered_num)<(t*m) :
        ordered_num+=change_number(n,i)
        i+=1
    for _ in range(t) :
        answer+=ordered_num[p-1]
        p+=m
    return answer
cs
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함