-
백준 11650 풀이 및 설명python 알고리즘 2024. 3. 15. 22:20
해답
import sys # key 를 무명함수로 정렬해서 풀었을 때의 풀이 lst = sys.stdin.readlines()[1:] lst.sort(key=lambda x: int(x.split()[1])) lst.sort(key=lambda x: int(x.split()[0])) print(''.join(lst))
문제 해석
정렬의 문제임.
1. x 좌표 증가 순으로 정렬 후에
2. y 좌표 정렬하면 된다.
문제 풀이
시간 복잡도를 최대한 줄이기 위해서, 그냥 점 찍는 부분을 받아서 리스트로 저장
대부분 sort 나 sort.reverse 정도만 사용하는데,
sort 를 더 잘 쓰면
최적해
import sys # 입력 받기 lst = sys.stdin.readlines()[1:] # (첫 번째 수, 두 번째 수)의 튜플을 기준으로 정렬 lst.sort(key=lambda x: (int(x.split()[0]), int(x.split()[1]))) # 결과 출력 print(''.join(lst))
이렇게 코드를 줄일 수 있지만, 가독성 측면에서 위의 방식대로 쓰는 것이 좋을 것 같다.
'python 알고리즘' 카테고리의 다른 글
[백준 11047] 숏코딩 리뷰 (파이썬) (0) 2024.03.15 11047 파이썬 [beakjoon] 코드 리뷰 (0) 2024.03.15 [프로그래머스] 최소 직사각형 문제-완전탐색 (with Python) (0) 2024.03.14