본문 바로가기
백준알고리즘/정렬

(Python/🥈5)백준 알고리즘 11650번: 좌표 정렬하기

by windy7271 2022. 5. 24.
728x90
반응형

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

 

11650번: 좌표 정렬하기

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

풀이:

import sys

N = int(sys.stdin.readline())
array = []
for i in range(N):
    # x,y = map(int,input().split())
    # array.append((x,y))
    array.append(list(map(int,sys.stdin.readline().split())))
print(array)
array.sort(key = lambda x: (x[0],x[1]))     

for i in array:
    print(i[0], i[1])

 

시간이 10배나 차이난다

 

주석처리된게 4308ms 이고 안된게 460ms 이다

주석 처리 된것은 x,y 변수에 담은 후에 array 리스트에 추가 하기 때문이다.

 

array.sort(key = lambda x: (x[0],x[1]))
#key 값으로 정렬하겠다라는 뜻

정렬 함수를 람다식으로 쓴건데 x[0]  x좌표로 정렬한후 x[2] y좌표로 한번더 정렬 해준것이다.

 

https://infinitt.tistory.com/122

 

참고 바랍니다.

반응형

댓글