본문 바로가기
Algorithm/알고리즘 문제풀이

오늘의 알고리즘(4월 28일)

by devraphy 2021. 4. 28.

1. 백준, 좌표 정렬하기, 11650

www.acmicpc.net/problem/11650

 

11650번: 좌표 정렬하기

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

www.acmicpc.net


2. 생각해보자 

 

a) 문제 이해

  • 첫번째 입력값 N은 앞으로 입력될 좌표의 개수를 의미한다.
  • 주어진 좌표의 x와 y 값을 기준으로 오름차순 정렬을 한다. 

 

b) 어떻게 풀까?

  • 데이터를 튜플 형식으로 입력받는다. 
  • x값을 비교하여 정리하는데, x값이 동일한 경우 y값을 비교하는 조건문을 만든다. 

3. 코드 해설 및 분석 

  • 파이썬의 기본 정렬 라이브러리는 튜플을 정렬할 때, 인덱스 순서대로 오름차순으로 정렬한다. 
  • 그러므로 좌표값 x, y를 비교하는 조건문을 만들 필요가 없다.  
n = int(input())
array = []

for _ in range(n):
    x, y = map(int, input().split(' '))
    array.append((x, y))

array = sorted(array)

for i in array:
    print(i[0], i[1])

 

댓글