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
참고 바랍니다.
반응형
댓글