백준 11650 문제풀이 [python]
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
문제를 보자.
좌표를 정렬하여 순서대로 출력시켜 주면 된다.
코드부터 보자.
코드
일단 이렇게 해도 정답판정이다.
하지만 좀 찝찝한 느낌이 든다.
sort부분에서 분명히 무언가 놓친 느낌이다.
이번 포스팅에서는 sort의 정렬기준에 대해서 알아보겠다.
sort와 sorted는 key 값을 통해서 정렬기준을 설정해 줄 수 있다.
예시를 보자.
array = [[1, -1], [1, 1], [2, 2], [3, 3], [3, 4]]
array.sort(key = lambda x : x [0]) 일 경우, x [0] 번째를 기준으로 정렬된다.
마찬가지로 array.sort(key = lambda x: x [1]) 이면, x [1]의 크기를 기준으로 정렬을 한다.
만약 x [0]을 먼저 정렬 후, x [1]을 정렬하고 싶다면
array.sort(key = lambda x : (x [0] , x [1]) 이렇게 사용하면 된다.
내림차순으로 정렬하고 싶으면 기준 앞에 -를 붙이면 된다. (ex) key = lambda x : (x [0] , -x [1])
수정 코드
둘 다 정답이나, 후자가 논리상 깔끔하다.
그리고 chat gpt에 물어봤더니 그냥 인자가 없는 sort()는 첫 번째 요소의 기준으로만 정렬된다더라.
확실한 정보가 아니니, 일단 참고만 하자.
배운 점
1. .sort() 기존 배열을 정렬, sorted() 기존 배열을 정렬하여 새로운 배열에 넣음( 기존 유지 )