반응형
문제
2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
앞선 문제들에게서 보았던 sort 정렬에 lambda를 사용하는 문제다.
2022.10.08 - [Algorithm/이것이 코딩테스트다] - [Python][이코테] 성적이 낮은 순서로 학생 출력하기
import sys
n = int(sys.stdin.readline())
data = []
for _ in range(n):
input_data = list(map(int, sys.stdin.readline().split()))
data.append((input_data[0], input_data[1]))
data.sort(key = lambda b: b[1])
data.sort(key = lambda a: a[0])
for i in data:
print(i[0], i[1])
처음에는
data.sort(key = lambda b: b[1])
data.sort(key = lambda a: a[0])
위치를 바꾼
data.sort(key = lambda a: a[0])
data.sort(key = lambda b: b[1])
위의 방식으로 했다가 틀렸습니다를 보고
바꿔서 제출했더니 통과 되었다.
시간이 392ms로 살짝 아쉽긴 하지만 맞춘사람을 보니 가장 빠른사람은 내 속도의 2배 빠른 180ms에도 푼 코드가 있지만
봐도 이해가잘.. 안된다.
그 외에는 내가 푼 방법과 비슷하게 lambda를 쓰는 방식이 주로 사용되었으며
입출력 방식에서의 차이로 시간이 크게 달리 나온것으로 보였다.
반응형
'Algorithm > 백준' 카테고리의 다른 글
[Python] 백준 1018번 - 체스판 다시 칠하기 (1) | 2022.10.19 |
---|---|
[Python] 백준 11866번 - 요세푸스 문제 0 (0) | 2022.10.18 |
[Python]백준 10814번 - 나이순 정렬 (0) | 2022.10.15 |
[Python] 백준 2869번 - 달팽이는 올라가고 싶다 (0) | 2022.10.12 |
[Python] 백준 1436번 - 영화감독 숌 (1) | 2022.10.05 |
댓글