🤔 문제
https://programmers.co.kr/learn/courses/30/lessons/17687
😀 풀이
본 문제는 10진수로 주어진 숫자를 n진수로 변환하면 쉽게 풀 수 있는 구현 문제입니다.
n진수 변환의 경우 풀이 코드에 convert라는 함수로 정의해놓았습니다. 또한 진수 변환의 경우 참고할만한 코드가 많으므로 설명은 생략하겠습니다.
게임에 참여하는 인원(m)과 튜브가 미리 구할 숫자의 개수(t)를 고려해보았을 때 최대 t * m의 숫자를 말할 것이므로 t * m개의 숫자를 n진법으로 변환하고 이를 문자열에 계속해서 추가해줍니다. 이를 바탕으로 p번째 말하는 사람이 어떤 숫자를 말해야 하는지 체크해가며 정답을 만들어주면 됩니다!
💻 풀이 코드는 아래와 같습니다.
# n진수로 변환하는 함수
def convert(number, n):
if number == 0:
return '0'
NUMBERS = "0123456789ABCDEF"
res = ""
while number > 0:
number, mod = divmod(number, n)
res += NUMBERS[mod]
return res[::-1]
def solution(n, t, m, p):
answer = ''
game = ''
cur = p - 1
for num in range(t * m):
game += convert(num, n)
while 1:
if len(answer) == t:
break
answer += game[cur]
cur += m
return answer
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] k진수에서 소수 개수 구하기 - Python (0) | 2022.02.10 |
---|---|
[프로그래머스] 주차 요금 계산 - Python (0) | 2022.02.06 |
[프로그래머스] [3차] 파일명 정렬 - Python (0) | 2022.02.01 |
[프로그래머스] 보석 쇼핑 - Python (2) | 2022.01.29 |
[프로그래머스] [3차] 방금그곡 - Python (0) | 2022.01.28 |