프로그래머스 코딩테스트 고득점 Kit의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
문제
https://programmers.co.kr/learn/courses/30/lessons/17687
내가 작성한 코드
def get_num(n, k=0):
i = k
s = str(k)
gen = get_num(n, 1)
while True:
yield s
if i+1 == n:
s = next(gen) + '0'
i = 0
else:
i += 1
s = s[:-1] + str(hex(i)[2:]).upper()
def solution(n, t, m, p):
answer = ''
gen = get_num(n)
turn = 0
p -= 1
while len(answer) < t:
for c in next(gen):
if turn == p:
answer += c
turn = (turn + 1) % m
if len(answer) == t:
break
return answer
- 진법
- 2진수, 8진수, 16진수가 아닌 2~16진수 모두 고려해야한다
- n진수가 고정이 아니므로, generator의 재귀로 n이 넘을 때마다 새로운 자리수 추가
다른 사람이 작성한 코드
None
기억해야할 것
- 자리수에 generator가 편한 것 같다
'코딩테스트' 카테고리의 다른 글
[프로그래머스][KAKAO_BLIND][2018] 자동 완성 (0) | 2021.09.03 |
---|---|
[프로그래머스][KAKAO_BLIND][2018] 셔틀버스 (0) | 2021.09.03 |
[프로그래머스][KAKAO_BLIND][2018] 압축 (0) | 2021.09.03 |
[프로그래머스][KAKAO_BLIND][2018] 방금 그 곡 (0) | 2021.09.03 |
[프로그래머스][KAKAO_BLIND][2019] 블록 게임 (0) | 2021.09.02 |