[백준/Python] 11651번 : 좌표 정렬하기2

김동준·2023년 9월 17일
0

알고리즘 분류 정렬

🔗 문제 출처 https://www.acmicpc.net/problem/11651


11650번 정렬하기 문제와 비슷하다. 하지만 이 문제는 정렬의 기준이 y좌표이다. 2차원 배열의 정렬 기준을 바꿔주기만 하면 쉽게 풀 수 있다.




📎 코드

n = int(input())
arr = []
for i in range(n):
  point = list(map(int,input().split()))
  arr.append(point)

arr.sort(key=lambda x:(x[1], x[0]))

for i in range(n):
  print(arr[i][0], arr[i][1])

배열을 담을 배열을 선언해두고 for문을 돌린다. x,y점을 받을 때는 list형식으로 입력받고 그 리스트를 arr배열에 append하여 2차원 배열을 형성한다.

포인트는 sort함수의 파라미터이다. 파라미터에 아무 값도 전달하지 않는다면 arr[0][i] 기준으로 정렬이 이루어진다. 두 번째 값을 기준으로 정렬을 하고 싶다면 파라미터에 key=lambda x:x[1]을 전달하면 된다. 하지만 두 번째 요소의 값이 같을 수도 있기 때문에 key=lambda x:(x[1], x[0])을 전달해주면 중복 값이 있을 때에 첫 번째 요소를 기준으로 정렬을 마무리한다.

profile
동구팔

0개의 댓글

관련 채용 정보