백준(BOJ) 문제 풀이

백준 11650번 문제(좌표 정렬하기) 파이썬(Python) 풀이 [로밍맨]

로밍맨 2022. 5. 3. 19:00
728x90
반응형

문제 링크

https://www.acmicpc.net/problem/11650

 

11650번: 좌표 정렬하기

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

www.acmicpc.net

 

정답 코드는 아래와 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
 
def solve():
  n = int(sys.stdin.readline().rstrip())
  arr = []
  for _ in range(n):
    a, b = map(int, sys.stdin.readline().rstrip().split())
    arr.append((a, b))
  arr.sort()
  for a, b in arr:
    print(a, b)
 
solve()
 
cs

 

기존에 제출한 코드가 재채점 되면서 오답처리되어 다시 풀이한 문제입니다.

기존 풀이 링크(https://roamingman.tistory.com/58)

Python 에서는 tuple 에 대한 비교를 할 때,

기본적으로 각 tuple 의 가장 첫 번째 값에 대하여 비교하고,

만일 그 값이 같다면 그 다음 값에 대하여 비교하고,

또 그 값이 같다면 그 다음 값에 대하여 비교하고,

... 반복 ...

하는 성질을 이용하여 좌표값을 tuple 에 넣고 sort 함수를 실행시키기만 하여 간단하게 풀어보았습니다.

 

풀이는 아래 영상을 참고 바랍니다.

https://www.youtube.com/watch?v=ZW1oX7s2X2M 

 

저작권 라이선스: CC BY (출처만 표시하면 자유롭게 이용 가능)

728x90
반응형