Problem Solving/프로그래머스
[Python3] Lv2 프로그래머스 - [3차] n진수 게임
dev.hunmin
2021. 1. 29. 23:31
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 |