<aside> 💡
어떻게 sort할 것인지가 관건
</aside>
def solution(data, ext, val_ext, sort_by):
answer = []
for i in data:
if ext == "code":
if i[0] < val_ext:
answer.append(i)
elif ext == "date":
if i[1] < val_ext:
answer.append(i)
elif ext == "maximum":
if i[2] < val_ext:
answer.append(i)
elif ext == "remain":
if i[3] < val_ext:
answer.append(i)
if sort_by == "remain":
answer.sort(key=lambda t:t[3])
elif sort_by == "maximum":
answer.sort(key=lambda t:t[2])
elif sort_by == "date":
answer.sort(key=lambda t:t[1])
elif sort_by == "code":
answer.sort(key=lambda t:t[0])
return answer
answer.sort(key=lambda t:t[3])
원하는 키 값으로 정렬 = 즉 배열의 3번째 인덱스를 기준으로 오름차순으로 정렬하겠다는 의미
def solution(data, ext, val_ext, sort_by):
std_dic = {'code':0, 'date':1, 'maximum':2, 'remain':3}
answer = []
for dt in data:
if dt[std_dic[ext]] < val_ext:
answer.append(dt)
answer.sort(key = lambda x:x[std_dic[sort_by]])
return answer
딕셔너리 사용해서 깔끔하게 풀었다 . . .
내 코드는 너무 if문 남발이라 ㅠ 가독성 떨어짐