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

오동훈·2022년 1월 4일
0

Baekjoon

목록 보기
18/58
post-thumbnail

1. Problem 📃

📚 출처 - 11650 - 좌표 정렬하기

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

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

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

입출력 예

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

2. Logic 👨‍🏫

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

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

3. Code 💻

1. 내가 푼 코드 😁

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

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

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

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

4. Feedback 📚

다음은 10814. 나이순 정렬이다.
람다에 대한 비슷한 문제와 비슷한 로직이 있으니 잘 모르겠다면 이 문제를 참고해보는것도 좋을 것 같다.

profile
삽질의 기록들🐥

0개의 댓글