백준[파이썬]
[백준/Python] - 11650번 좌표 정렬하기
코린이 파닥거리기
2025. 3. 25. 22:07
728x90
반응형
SMALL
https://www.acmicpc.net/problem/11650
제출 코드
import sys
input = sys.stdin.readline
N = int(input())
N_list = []
for _ in range(N):
x, y = map(int, input().split())
#튜플은 요소값 변경이 불가능하다는 list와의 차이점이 있음
N_list.append((x,y))
#N_list.sort() #이렇게 짜도 되고
#좀 더 직관적으로 구성하고싶으면
N_list.sort(key = lambda x:(x[0],x[1]))
for x, y in N_list:
print(x,y)
접근 방법 및 풀이
맨 처음에 x_list y_list두개 다 만들다가 뇌절와서 옛날에 풀었던 코드를 찾아봤다.
튜플(Tuple)이라는 자료구조를 사용하여 풀었었다.
자료를 두개를 받고 두개의 자료를 이용해서 정렬 하는 것이므로 단번에 이해가 됐다.
튜플
※튜플은 쉽게 말해 리스트와 동일한 자료구조이고 시간복잡도도 리스트와 같지만 값을 변경할 수 없는 자료구조이다.
튜플의 생성 방법
tuple = ()
tuple1 = (1,1)
tuple2 = (2,1)
tuple3 = (3,1)
print(tuple1)
print(tuple2)
print(tuple3)
튜플 출력
위에서 짠 로직과 같이 그냥 N_list.sort()를 해도되고
명시적으로 lambda를 사용해서 풀어도 된다.
lambda를 사용해서 함수 x를 생성하고 튜플의 첫번째 원소인 x를 기준으로 오름차순 정렬하고 x[0]의 값이 동일할 때에는 x[1]을 기준으로 내림차순 하여 N_list를 정렬해준다.
그리고 출력하면 끝
stdin으로 입력을 받으니까 시간복잡도가 확 줄은 것을 볼 수 있다.
728x90
반응형
LIST