honey_pot

[python] n진수 게임 본문

문제 풀이

[python] n진수 게임

_tera_ 2022. 9. 18. 16:27

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


처음에는 for문을 t 까지 돌려서 숫자 t-1 까지의 10진법 수를 n진법으로 변환해서 저장하는 걸로 생각했는데 리턴되는 값이 짧게 나왔다

다시 생각해보니 튜브가 t번 대답하는 동안 모두가 대답하게 되는 숫자의 개수가 t*m개인데 알파벳으로 처리되는 부분에서 총 개수가 t*m보다 적어지게 되므로 최대 길이인 t*m까지의 수로 변환한 뒤에 t*m까지라는 조건을 주어 슬라이싱하는게 정확하다는 걸 알게 되었다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def base(n, q): # n진수를 구하는 함수
    table = {10 : 'A'11 : 'B'12 : 'C'13 : 'D'14 : 'E'15 : 'F'}
    base = ''
    while n > 0:
        n, mod = divmod(n, q)
        if mod in table.keys():
            base += table[mod]
        else: base += str(mod)
    return base[::-1# 뒤집어줘야 원하는 값이 나옴
    
def solution(n, t, m, p):
    answer = ''
    for i in range(t*m):
        if i == 0# 0일 경우에는 그냥 추가
            answer+='0'
            continue
        answer += base(i,n)
    return answer[p-1:t*m:m] 
cs

'문제 풀이' 카테고리의 다른 글

[Python] [3차] 압축  (0) 2022.09.20
[python] k진수에서 소수 개수 구하기  (0) 2022.09.18
[python] 두 큐 합 같게 만들기(+투 포인터 방식)  (0) 2022.09.18
[python] N-Queen  (0) 2022.09.17
[python] 숫자 블록  (0) 2022.09.15
Comments