문제
programmers.co.kr/learn/courses/30/lessons/17687
처음 작성한 코드
def tenToWhat(num,what):
result = []
remain = ['A','B','C','D','E','F']
while num:
num, namaji = divmod(num,what)
if namaji>=10:
namaji-=10
result.append(remain[namaji])
else: result.append(str(namaji))
return ''.join(result[::-1])
def solution(n, t, m, p):
num = 1
tmp = '0'
while True:
if len(tmp)>t*m:
tmp = tmp[:t*m]
break
tmp+= tenToWhat(num, n)
num+=1
answer = [tmp[i] for i in range(len(tmp)) if i%m==p-1]
return ''.join(answer)
코드 리뷰 후
def tenToWhat(num,what):
result = []
remain = ['A','B','C','D','E','F']
while num:
num, namaji = divmod(num,what)
if namaji>=10:
namaji-=10
result.append(remain[namaji])
else: result.append(str(namaji))
return ''.join(result[::-1])
def solution(n, t, m, p):
num = 1
tmp = '0'
while True:
if len(tmp)>t*m:
break
tmp+= tenToWhat(num, n)
num+=1
answer = tmp[p-1::m][:t]
return ''.join(answer)
깨달은 점
- array[a:b:c]의 사용법을 알게되었다. a부터 b까지 c의 간격만큼의 의미를 갖고있다. 사람수(m)만큼 간격을 가지면서 p-1부터 시작하면 그게 맞는 값이 answer에 저장되고 문자열로 반환하게 작성하였다.
'Programmers' 카테고리의 다른 글
[프로그래머스] 방금그곡 (0) | 2021.02.08 |
---|---|
[프로그래머스] 파일명 정렬 (0) | 2021.02.06 |
[프로그래머스] 짝지어 제거하기 (0) | 2021.01.30 |
[프로그래머스] 폰켓몬 (0) | 2021.01.30 |
[프로그래머스] 소수 만들기 (0) | 2021.01.28 |