반응형
요약
: 그냥 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하는 것이다.
반응형
'백준' 카테고리의 다른 글
[백준알고리즘] 2447번 별찍기 파이썬 (0) | 2020.10.06 |
---|---|
[백준알고리즘] 2740번 행렬곱셈 파이썬 (0) | 2020.09.29 |
[백준알고리즘] 3009번 네번째점 파이썬 (0) | 2020.09.29 |
[백준알고리즘]1966번 프린터큐 python, 파이썬 (0) | 2020.08.31 |
[백준알고리즘]18258번 큐2 파이썬python (0) | 2020.08.31 |