일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- algorithm
- applicationeventpublisher
- 2981
- 백준
- codility
- 파이썬
- error
- springboot
- counting elements
- 프로그래머스
- java
- 코딩테스트
- brute force
- spring security
- Spring
- 최단경로
- API
- javascript
- Python
- beandefinitionstoreexception
- 소수
- 문자열
- 라이브템플릿
- Dijkstra
- BFS
- 알고리즘
- Greedy
- 2018 KAKAO BLIND RECRUITMENT
- HTTP
- 탐욕법
Archives
- Today
- Total
Altiora Petamus
좌표 정렬하기 본문
🤔생각해보기
파이썬의 정렬은 람다를 사용할 수 있다. 다중 조건일 경우 튜플로 넣어주면 되므로 아주 간단하게 해결할 수 있다.
성공 코드
N = int(input())
position = sorted([tuple(map(int, input().split())) for _ in range(N)], key=lambda x: (x[0], x[1]))
for pos in position:
print(*pos)
갑자기 흥미가 생겨서 약간의 가독성을 희생시키고 코드 길이를 줄여보았다 ㅋㅋ...
여기서 더 줄이려면 좌표의 개수를 받아오는 N도 position 안으로 넣어버리면 되지만, 굳이 그렇게까지 하진 않았다.
코드를 간단하게 해설하자면,
- N 만큼 루프를 돌면서 배열 안에 튜플로 좌표값을 저장한다.
- sorted 로 정렬하는데 lambda 를 활용하면 x[0] 값을 먼저 정렬한 후, 그 중 x[1] 값으로 다시 정렬할 수 있다. 조건은 튜플로 넣어준다.
- *args 를 사용하여 담겨있는 값들을 순차적으로 출력한다.
더 알아두면 좋은 점
- 람다의 키 값으로 '-' 를 붙이면 내림차순으로 정렬이 된다.
- 출력할 때 * 를 붙여서 출력하면 요소의 값을 띄워서 출력한다. → 문제 해결할 때 아주 꿀팁!