본문 바로가기
IT/Programming_프로그래밍

[Py.CheckiO / Python] Py.CheckiO의 Home - Bigger price 파이썬 문제 풀이 및 해석

by 무브영/movewoo0 2021. 1. 28.
728x90
반응형

안녕하세요. 이번 포스팅에서는 Py.CheckiO 의 Home 레벨에 있는 Bigger price 문제풀이를 해보겠습니다.

 

주의:
제 답이 최고/최적화된 답이 아닐 수 있으며, 해결하는 것에만 집중한 답이기 때문에 좀 더 나은 방법이나 해석이 있으시다면 댓글 부탁드립니다.

 

 


 

0. Bigger price 문제 내용

 

Bigger price의 문제 내용은 주어진 하나의 정수와 딕셔너리 형의 자료에서 딕셔너리안의 price 값이 높은 순서대로 

 

정수 갯수 만큼 딕셔너리 항목을 return 하는 문제입니다. 

 

 

 


 

 

1. Bigger price 문제 풀이

 

이 문제는 딕셔너리를 다루는 형식과 sorted 함수를 통해서 한 줄로 해결할 수 있습니다. 

 

단순하게 sorted 함수에 딕셔너리를 그대로 넣으면 딕셔너리안의 key값을 오름차순으로 정렬한 key의 리스트를 반환합니다. 

 

그렇지만 이 문제에서는 key 값이 아닌 value의 값이 정렬되어야 하기 때문에 아래의 lambda를 사용한 형식을 따릅니다.

 

sorted(data, key=lambda x:x['price'])

 

이 코드만 사용했을 시에는 입력받은 딕셔너리의 전체가 price 값에 대해 정렬된 순서로 나타납니다.

 

하지만 우리가 필요한 것은 '내림차순으로 정렬된 것들 중 앞의 두 개' 가 필요하므로

 

reverse=True 옵션을 넣어서 내림차순으로 정렬하겠습니다.

 

 

sorted(data, key=lambda x:x['price'], reverse=True)

 

여기까지 했을 때가 내림차순으로 딕셔너리들을 정렬한 상태입니다. 그러면 여기서 주어진 정수(limit) 만큼 return하면

정답이 됩니다.

 

sorted(data, key=lambda x:x['price'], reverse=True)[:limit]

 

 

Bigger price 문제 풀이

 

 


 

본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.

인용 시 출처와 같이 공개해주세요!

도움이 되셨다면 댓글 또는 공감 부탁드립니다!

728x90
반응형

댓글