BOJ 16650 Python 문제풀이
Algorithm
Solved.ac Class [2]
실버 5 등급 : 좌표 정렬하기
문제 설명
2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
출력
1 -1
1 1
2 2
3 3
3 4
문제 접근 방식
- 2차원 평면 (x, y)의 좌표 N개가 주어짐
- 정렬 순서는 1순위: x 2순위: y
x의 값이 같다면 y의 순서로 정렬하기 (ex (1,3), (1,1) 의 순서는 (1,1) (1,3)) - 출력과 동일하게 해주기
여기서 sort, sorted의 key = lambda 기능을 사용하면 매우 간편하게 풀 수 있습니다.
- lambda x: 를 통해 각 리스트의 원소를 하나씩 가져올 것
- 현재 각 원소는 튜플 형태로 저장해두었습니다.
- 각 원소의 0번째와 1번째 순서대로 진행 (x[0], x[1])
- 각 원소를 출력
문제 풀이
import sys
n= int(sys.stdin.readline())
a=[]
for i in range(n):
x, y = map(int, sys.stdin.readline().split())
a.append((x, y))
a = sorted(a, key = lambda x : (x[0], x[1]))
for x, y in a:
print(x, y)