백준
[백준알고리즘] 11651번 좌표정렬하기2 파이썬 python
lulurara
2020. 9. 29. 12:51
반응형
요약
: 그냥 y를 증가하는 순으로 나열한다. 만약 y좌표가 같을 경우 x를 우선순위에 둔다.
처음 짠 코드
import sys
num = int(sys.stdin.input())
arr = []
for _ in range(num):
arr = list(map(int, sys.stdin.input().split()))
arr.sort(key=lambda x:(x[1], x[0]))
for i in range(arr):
print(i[0], i[1])
근데 계속 런타임 에러가 뜬다.
이 문제 때문에 sys를 쓴건데 이러니 당황스러웠다.
해결
import sys
num = int(sys.stdin.readline())
arr = []
for i in range(num):
arr.append(list(map(int, sys.stdin.readline().split())))
arr.sort(key=lambda x: (x[1], x[0]))
for i in arr:
print(i[0], i[1])
input 대신 readline으로 하니 런타임 에러가 사라졌다.
+tip
sort를 쓸 때 첫번째 인자를 기준으로, 두번째 기준으로 sort할 수 있다.
난 arr.sort(key=lambda x:(x[1], x[0])를 썼는데,
arr = sorted(arr, key = lambda x : (x[1], x[0]) 이렇게 써도 된다.
arr.sort(key=lambda x:(x[1], x[0]) 이거는 그냥
x[1]을 기준으로 sort하고 그 다음은 x[0]기준으로 sort하는 것이다.
반응형