KEEP GOING
백준 10825번: 국영수 (sorted(리스트, key=lamda x:x[i]), set) 본문
반응형
str_list = ['좋은하루','good_morning','굿모닝','niceday']
>>> str_list.sort()
>>> print(str_list)
['good_morning', 'niceday', '굿모닝', '좋은하루']
https://www.acmicpc.net/problem/10825
1. 코드 구현
import sys
n = int(input())
studnts = [[] for _ in range(n)]
for i in range(n):
a,b,c,d = input().split()
studnts[i] = [a,int(b),int(c),int(d)]
# res = sorted(studnts, key=lambda x:x[1], reverse=True)
# -부호를 사용하여 reverse = True 적용
res = sorted(studnts, key=lambda x: (-x[1], x[2], -x[3], x[0]))
for i in range(n):
print(res[i][0])
set
튜플을 원소로하는 리스트가 있을 때, 리스트를 정렬하면 튜플을 구성하는 원소 순서대로 정렬된다. 다시말해 튜플의 첫번째 원소가 같은 경우 두 번째 원소 순서에 맞게 정렬되고 두 번째 원소 순서가 같다면 세번째 원소 순서에 맞게 정렬된다.
a = [(5, 1, 5), (3, 5, 5), (3, 1, 9), (3, 1, 1)]
a.sort()
print(a)
>>> [(3, 1, 1), (3, 1, 9), (3, 5, 5), (5, 1, 5)]
sort
원본을 변형시켜 정렬한다. '변수. sort( )' 형태로 사용.
정렬 기준은 문자열은 알파벳, 가나다순이고 숫자는 오름차순이 기본값이다.
str_list = ['좋은하루','good_morning','굿모닝','niceday']
>>> str_list.sort()
>>> print(str_list)
['good_morning', 'niceday', '굿모닝', '좋은하루']
sorted
정렬된 결과를 반환. 원형을 변형시키지 않는다. 정렬 기준은 문자열은 알파벳, 가나다순이고 숫자는 오름차순이 기본값이다.
str_list = ['좋은하루','good_morning','굿모닝','niceday']
>>> print(sorted(str_list))
['good_morning', 'niceday', '굿모닝', '좋은하루']
>>>> print(str_list)
['좋은하루','good_morning','굿모닝','niceday']
sort, sorted의 parameter
3-1. reverse
bool값을 넣는다. 기본값은 reverse=False(오름차순)이다.
reverse=True를 매개변수로 입력하면 내림차순으로 정렬할 수 있다.
3-2. key
정렬을 목적으로 하는 함수를 값으로 넣는다. lambda를 이용할 수 있다.
key 값을 기준으로 정렬되고 기본값은 오름차순이다.
>>> tuple_list = [('좋은하루', 0),
('niceday', 1),
('좋은하루', 5),
('good_morning', 3),
('niceday',5)]
>>> tuple_list.sort(key=lambda x : (x[0], x[1])) # '-'부호를 이용해서 역순으로 가능
>>> print(tuple_list)
[('good_morning', 3), ('niceday', 1), ('niceday', 5), ('좋은하루', 0), ('좋은하루', 5)]
반응형
'code review > sort' 카테고리의 다른 글
[python] 프로그래머스 42579번 : 베스트 앨범 (0) | 2021.12.29 |
---|---|
[python] 딕셔너리 정렬하기 (key/value 기준으로 sorted(), lambda, reverse 사용) (2) | 2021.12.28 |
[python] 프로그래머스 42746번 : 가장 큰 수 (0) | 2021.12.27 |
백준 1181번 : 단어 정렬 (list(set()) 처리) (0) | 2021.11.10 |
백준 1715번 : 카드 정렬하기 (heap) (0) | 2021.11.09 |
Comments