728x90
반응형
Today I Learned
팀원과 코테 코드리뷰를 했는데 내가 몰랐던 sort함수의 사용법과
처음보는 함수가 있어서 그것에 대해 알아보았다.
divmod(x, y)
- 주어진 두 개의 숫자를 나눈 몫과 나머지를 담은 (몫, 나머지) 형태의 튜플로 반환함
# 내 풀이
# 재귀함수로 3진법 > 10진법 후 리버스
def dec_to_tri_reversed(number,str_tri=''):
if number==0: return str_tri
return dec_to_tri_reversed(number//3,str_tri+str(number%3))
# 재귀함수로 3진법 > 10진법
def tri_to_dec(str_tri, number=0,idx=0):
if idx==len(str_tri): return number
return tri_to_dec(str_tri, number+(3**idx)*int(str_tri[len(str_tri)-idx-1]),idx+1)
# 제출용 함수
def solution(n):
answer = tri_to_dec(dec_to_tri_reversed(n), number=0,idx=0)
return answer
# 팀원의 풀이
def solution(n):
reverse_base3 = ''
while n > 0:
n, r = divmod(n, 3)
reverse_base3 += str(r)
answer = int(reverse_base3, 3)
return answer
sort(key = )
- key 매개변수를 사용해서 리스트의 정렬 기준을 지정
- 다양한 방법으로 key를 지정해줄 수 있다.
# 내 풀이
def solution(strings, n):
arr = [[string[n],string] for string in strings]
arr.sort()
answer = [i[1] for i in arr]
return answer
# 팀원의 풀이
def solution(strings, n):
return sorted(strings, key=lambda x: (x[n], x))
이 경우 key = lamda x: (x[n], x)를 주면 strings의 각 요소가 (x[n], x)가 되고 그에 맞게 정렬된다.
728x90
반응형