문제
알고리즘
- 반복문을 통해 모든 인원이 미리 구해야 하는 숫자를 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
'CodingTest > Programers' 카테고리의 다른 글
[programers] 프로그래머스(파이썬) : 소수 만들기 (0) | 2022.04.24 |
---|---|
[programers] 프로그래머스(파이썬) : 신고 결과 받기 (0) | 2022.04.23 |
[programers] 프로그래머스(파이썬) : 다단계 칫솔 판매 (0) | 2022.01.21 |
[programers] 프로그래머스 카카오(파이썬) : [1차] 다트 게임 (0) | 2022.01.14 |
[programers] 프로그래머스 카카오(파이썬) : [1차] 비밀지도 (0) | 2022.01.06 |