백준 11650번 : 좌표 정렬하기
2024. 1. 26. 20:32ㆍ개인활동/코테
반응형
이차원 배열을 뭔가 우선순위를 두고 정렬할 수 없을까
하며 이것저것 자료를 찾아보던 중 유레카를 외치게 되는 자료를 찾고, 드디어 이 문제를 해결했다.
n = int(input())
coor_list = sorted([list(map(int, input().split())) for _ in range(n)], key=lambda x : (x[0], x[1]))
for i in coor_list:
print(*i)
이 코드의 포인트는 sorted 함수의 key 옵션에 있는 lambda 함수이다
lambda 함수 뒤에 있는 (x[0], x[1])의 의미가 바로
0번째 element를 기준으로 정렬 후 1번째 element를 기준으로 정렬하라는 의미가 된다
숏코드 분석 ㄱ
for i in sorted([[*map(int,s.split())]for s in open(0)][1:]):print(*i)
전반적인 내용은 비슷한데
open(0)을 이용해 입력받은 것들을 그대로 가지고와 s에 전달,
map 함수를 이용해 불러오고 중첩 리스트에 저장
asterisk를 이용해 각 요소를 넣어주고, 첫번째로 입력받은 값은 총 입력 갯수이기 때문에 제외
for문을 한줄로 만들어 출력해준다
그런데 의문이 들었다
여기선 key를 따로 설정하지 않았는데, 따로 설정하지 않아도 그냥 정렬을 해주는가보다..
나도 설정 안했을 때 정답이랑 똑같이 나와서 설마.. 운빨이겠지
라고 생각했는데 아니였나보다
참고자료
반응형
'개인활동 > 코테' 카테고리의 다른 글
백준 10773번 : 제로 (0) | 2024.02.09 |
---|---|
백준 10814번 : 나이순 정렬 (1) | 2024.02.01 |
백준 1181번 : 단어 정렬 (1) | 2024.01.24 |
백준 1427번 : 소트인사이드 (0) | 2024.01.21 |
백준 2587번 : 대푯값 (0) | 2024.01.12 |