728x90
SW마에스트로를 준비하는과정에서 자꾸 문법을 잊어먹는다 ... 그래서 한번 정리를 하고 가는것이 좋다고 생각했다.
a라는 리스트가 있다고 가정을 하면,
첫번째 인자를 기준으로 정렬: a.sort(key=lambda x:x[0])
두번째 인자를 기준을 정렬: a.sort(key=lambda x:x[1])
첫번쨰 인자를 오름차순으로 정렬하고, 두번쨰 인자를 내림차순으로 정렬하고싶다면 ?
a.sort(key=lambda :(x[0],-x[1]))
파이썬에는 sort()라는 내장 함수가 존재해 간단하게 오름차순, 내림차순으로 리스트 정렬이 가능하다.
1. 리스트 정렬하기
- 오름차순으로 정렬하기
arr = [2,3,4,5,1]
arr.sort()
print(arr)
# [1,2,3,4,5]
- 내림차순으로 정렬하기
arr = [2,3,4,5,1]
arr.sort(reverse=True)
print(arr)
# [5,4,3,2,1]
2. 2차원 배열 정렬하기
- 기본 sort() 사용하기
arr[i]를 기준으로 오름차순으로 정렬되는 것을 확인할 수 있다.
arr = [[2,3],[1,2],[0,4]]
arr.sort()
print(arr)
# [[0, 4], [1, 2], [2, 3]]
- 특정 값 기준으로 정렬하기
Case1. 행 기준으로 정렬하기
첫 번째 값을 기준으로 오름차순 정렬된 것을 확인할 수 있다.
arr = [[2,3],[1,2],[0,4]]
arr.sort(key=lambda x:x[0])
print(arr)
# [[0, 4], [1, 2], [2, 3]]
이 때, x 값에 -를 취해주면 내림차순 정렬을 할 수 있다.
arr = [[2,3],[1,2],[0,4]]
arr.sort(key=lambda x: -x[0])
print(arr)
# [[2, 3], [1, 2], [0, 4]]
Case2. 열 기준으로 정렬하기
두 번째 값을 기준으로 오름차순 정렬된 것을 확인할 수 있다.
arr = [[2,3],[1,2],[0,4]]
arr.sort(key=lambda x:x[1])
print(arr)
# [[1, 2], [2, 3], [0, 4]]
다음과 같이 두 번째 값이 같을 경우에는 첫 번째 값을 기준으로 오름차순 정렬 할 수도 있다.
arr = [[2, 3], [1, 2], [0, 4], [2, 2]]
arr.sort(key=lambda x: (x[1], x[0]))
print(arr)
# [[1, 2], [2, 2], [2, 3], [0, 4]]
728x90
'코딩테스트 문제풀이' 카테고리의 다른 글
dfs - 알파벳 BackTracking (0) | 2023.02.16 |
---|---|
DP-가장 높은 탑 쌓기 (0) | 2023.02.15 |
백준 숨바꼭질 BFS (0) | 2023.02.14 |
DP 최대선 연결하기 (0) | 2023.02.14 |
DP - Top-Down 방식과 Bottom-up (0) | 2023.02.14 |