[Baekjoon] - 11650. 좌표 정렬하기 2(S5)

오동훈·2022년 1월 4일
0

Baekjoon

목록 보기
19/58
post-thumbnail

1. Problem 📃

📚 출처 - 11651 - 좌표 정렬하기 2

문제 설명
2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.

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

출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.

입출력 예

예제 입력예제 출력
5
0 4
1 2
1 -1
2 2
3 3
1 -1
1 2
2 2
3 3
0 4

2. Logic 👨‍🏫

다음 문제는 정렬 알고리즘으로 해결하는 문제입니다.
문제에서 정렬에 대한 조건을 2가지 주었는데 이 경우 쉽게 해결하는 방법은 람다를 사용해 해결하는 방법입니다.

람다를 사용하면 +라면 오름차순, -라면 내림차순으로 정렬 가능하다. 또한 원하는 조건 순서에 맞춰 아래와 같이 작성해주면 그대로 정렬이 가능하다.

3. Code 💻

1. 내가 푼 코드 😁

import sys
input = sys.stdin.readline

N = int(input())
coord = []

for i in range(N):
    coord.append(list(map(int, input().split())))

coord = sorted(coord, key = lambda x : (x[1], x[0]))

for i in range(N):
    print(coord[i][0], coord[i][1])

4. Feedback 📚

다음은 11650. 좌표 정렬하기이다.
이 문제와 거의 동일하니 이해가 잘 가지 않는다면 참고해 보는것이 좋을 것 같다.

profile
삽질의 기록들🐥

0개의 댓글