honey_pot
[python] n진수 게임 본문
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까지라는 조건을 주어 슬라이싱하는게 정확하다는 걸 알게 되었다.
![](https://blog.kakaocdn.net/dn/0fzSU/btrMjXxnWku/PEeKvcDUub9oVckl3kEgmk/img.jpg)
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