티스토리 뷰
📌문제
2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
📌풀이
입력받은 x, y 좌표를 리스트에 튜플 형식으로 추가
기본적으로 sort() 함수는 튜플을 정렬할 때 첫 번째 요소(인덱스 0)를 기준으로 오름차순 정렬하고, 첫 번째 요소가 같다면 두 번째 요소(인덱스 1)를 기준으로 오름차순 정렬
따라서, x 좌표를 기준으로 오름차순 정렬한 후 만약 x 좌표가 같다면, y 좌표를 기준으로 오름차순 정렬을 하게 됨
정렬된 리스트에서 a, b를 언패킹하여 출력
* 언패킹(Unpacking): 튜플, 리스트와 같은 자료형에 저장된 값을 개별 변수로 분해하여 할당하는 과정
📌코드
n = int(input())
points = []
for _ in range(n):
a, b = map(int, input().split())
points.append((a, b))
points.sort()
for a, b in points:
print(a, b)
'코딩테스트' 카테고리의 다른 글
[백준/파이썬] 10814 나이순 정렬 (0) | 2025.02.09 |
---|---|
[백준/파이썬] 1181 단어 정렬 (0) | 2025.02.07 |
[백준/파이썬] 10989 수 정렬하기 3 (0) | 2025.02.05 |
[백준/파이썬] 25305 커트라인 (0) | 2025.02.04 |
[백준/파이썬] 2839 설탕 배달 (0) | 2025.02.03 |