Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- swift
- 알고리즘
- 백준온라인저지
- SwiftUI
- Swift공부
- 파이썬 풀이
- Python
- 프로그래머스
- 알고리즘 공부
- 정렬
- 백준 온라인 저지
- Algorithm
- 오토레이아웃
- BFS
- error
- 앱개발
- ios
- dfs
- Clean Architecture
- Kotlin
- Level 1
- Android
- greedy algorithm
- 공부
- Autolayout
- iOS개발
- UIKit
- 파이썬
- 그리디 알고리즘
- 안드로이드 공부
Archives
- Today
- Total
Tori의 개발 공부
[python]11650-좌표 정렬하기 본문
문제
파이썬 풀이
튜플로 2차원 좌표를 입력받아 리스트 안에 저장한 후, x좌표를 기준으로 오름차순 정렬하는 문제이다. (x좌표가 같을 시 y좌표 비교)
import sys
input = sys.stdin.readline
n= int(input().rstrip())
v = []
for i in range(n) :
x, y = map(int, input().rstrip().split())
v.append((x,y))
v.sort()
for x,y in v :
print(x,y)
시간 복잡도 개선을 위해 input대신 sys.stdin.readline을 사용하였다.
단, readline으로 입력을 받으면 끝에 개행 문자를 가져온다 하여 rstrip을 통해 제거하여주었다.
입력받기
for i in range(n) :
x, y = map(int, input().rstrip().split())
v.append((x,y))
v라는 리스트 안에 x, y좌표를 튜플 형태로 저장하였다.
정렬하기
기본적으로 튜플이 저장된 리스트에서 sort함수를 적용하면 문제와 같은 정렬 기준으로 정렬되어 그냥 sort()만을 이용해 정렬하여 문제를 해결하였다.
그 외의 정렬 방법은 sort의 인자에 key값을 부여하여 할 수 있다. 기본적으로 오름차순으로 정렬되며 내림차순으로 정렬하기 위해서는 reverse=true 매개변수를 추가로 부여하면 된다.
v.sort(key=lambda x :x[0]) #첫 번째 인자로 오름차순 정렬
v.sort(key=lambda x :-x[0]) #첫 번째 인자로 내림차순 정렬1
v.sort(key=lambda x :x[0],reverse=Tre) #첫 번째 인자로 내림차순 정렬2
v.sort(key=lambda x :x[1]) #두 번째 인자로 오름차순 정렬
v.sort(key=lambda x :(x[0],x[1])) #첫 번째 인자로 오름차순 정렬, 같으면 두 번째 인자로
v.sort(key=lambda x :(x[1],x[0])) #두 번쨰 인자로 오름차순 정렬, 같으면 첫 번째 인자로
v.sort(key=lambda x :(-x[0],x[1])) #첫 번째 인자로 내림차순 정렬, 같으면 두 번째 오름차순
'Algorithm > 백준 문제풀이' 카테고리의 다른 글
[python] 1541번 - 잃어버린 괄호 (0) | 2021.11.23 |
---|---|
[python] 2108번 - 통계학 (0) | 2021.09.08 |
[python] 18870번 - 좌표 압축 (0) | 2021.09.03 |
[python] 10814번 - 나이순 정렬 (0) | 2021.09.03 |
[python] 11651 - 좌표 정렬하기2 (0) | 2021.09.01 |