본문 바로가기
Problem Solving

[백준] 11650 좌표 정렬하기 python 알고리즘 문제

by DuncanKim 2022. 4. 20.
728x90

문제 11650. 좌표 정렬하기

 

1. 나의 코드와 발상 과정

import sys

n = int(sys.stdin.readline())
num_list = []

for i in range(n):
    m = list(map(int, sys.stdin.readline().split()))
    num_list.append(m)

num_list.sort()

for i in range(n):
   print(num_list[i][0], num_list[i][1])
   
   
######################
#오답

import sys

n = int(sys.stdin.readline())
num_list = []

for i in range(n):
    m = list(map(int, sys.stdin.readline().split()))
    num_list.append(m)

num_list.sort(key = lambda x: int(x[0]))
num_list.sort(key = lambda x: int(x[1]))

for i in range(n):
    print(num_list[i][0], num_list[i][1])

메모리 제한이 여유있기 때문에 리스트 한 개를 더 만들어서 append() 시켜서 문제를 해결했다.

다만, 두 가지 기준이 있을 때 두 번 sort()를 해줘야 하는 줄 알았는데,

내장함수 만세 그럴 필요가 없었다.

 

오답 라인에서 보면 람다 함수를 활용해서 첫번째 원소를 기준으로 정렬하고

두번째 원소를 기준으로 정렬하는 모습을 보여주었는데,

이 두 가지가 필요 없었다.

 

이차원 배열을 정렬할 때 저렇게 한다고 하는데,

동작하는 로직을 잘 모르겠다.

 

2. 아쉬운

람다 함수가 아직 익숙하지 않다. 개념을 더 확실히 하고 예제를 더 많이 풀어보아야 겠다.

 

 

 

+ 백준 11651은 이거 풀면 덤으로 줘요!

728x90

댓글