코딩 깔짝
[Python] 21.07.07 : 2차원 리스트의 정렬
ballena
2021. 7. 7. 20:33
BOJ 11650번(https://www.acmicpc.net/problem/11650)을 풀며.
대부분의 해법이 파이썬답게 입력받은 2차원 배열을 sorted 함수로 정렬시켜 해결했다.
sorted 함수는 기존 리스트는 냅두고, 정렬된 새로운 리스트를 반환한다.
sort()의 인자로 비교 방식을 조절할 수 있다.
2차원 배열 X에서 2번째 인자를 기준으로 정렬 후 1번째 인자로 정렬한다면,
X.sort(key=lambda x: (x[1], x[0]))
로 쓴다. 역순(내림차순)으로 정렬하려면 -x[0] <- 이런 식으로 작성한다.
파이썬이기에 가능한 해법이다.
.
.
.
단순히 1차원 배열의 정렬이라면 많이 해봤다. 선택/버블/병합 등의 정렬 방식 중 하나를 선택하면 된다.
하지만 2차원의 정렬은 신경 쓸 것이 더 많아지기에 번거롭다.
.
.
.
정답자들의 해답을 상당수 확인했는데, 거의 모두가 sort/sorted 함수를 사용했다.
최소한 파이썬 차원에서는 이 방법이 한계인 것 같다.
파이썬으로 C++/C에서 했던 것처럼 하려면 메모리/시간 제한에 걸릴 것이다.