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
'Problem Solving' 카테고리의 다른 글
[백준] 1018 체스판 다시 칠하기 python 알고리즘 문제 (0) | 2022.04.22 |
---|---|
[백준] 7568 덩치 python 알고리즘 문제 (0) | 2022.04.20 |
[백준] 10989 수 정렬하기 python 알고리즘 문제 (0) | 2022.04.20 |
[백준] 11050 이항 계수 python 알고리즘 문제 (0) | 2022.04.20 |
[백준] 2869 달팽이는 올라가고 싶다 python 알고리즘 문제 (0) | 2022.04.20 |
댓글