✏️ 문제
https://www.acmicpc.net/problem/11651
11651번: 좌표 정렬하기 2
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
✏️ 풀이방법
- 문제에서 y좌표를 오름차순으로 정렬하고, x 좌표가 증가하는 순서로 정렬하라 하였지만 이대로 수행하면 시행착오2와 같은 문제가 발생한다.
1. x좌표를 오름차순으로 먼저 정렬
2. y좌표를 오름차순으로 정렬
📌 코드
n = int(input())
place = [list(map(int,input().split())) for _ in range(n)]
place.sort()
splace = sorted(place,key=lambda x:x[1])
for i in range(n):
print(*splace[i])
📌 결과
# 입력
5
0 4
1 2
1 -1
2 2
3 3
# 출력
1 -1
1 2
2 2
3 3
0 4
🤔 시행착오.1
n = int(input())
place = [list(map(int,input().split())) for _ in range(n)]
splace = sorted(place,key=lambda x:x[1])
for i in range(n):
print(*splace[i])
#입력
3
1 -1
0 -1
-1 -1
#출력
1 -1
0 -1
-1 -1
#정상출력
-1 -1
0 -1
1 -1
- y값만 오름 차순으로 정렬하면 예제는 정상으로 수행하지만 위 다음의 반례가 존재한다.
🤔 시행착오.2
n = int(input())
place = [list(map(int,input().split())) for _ in range(n)]
splace = sorted(place,key=lambda x:x[1])
splace.sort()
for i in range(n):
print(*splace[i])
0 4
1 -1
1 2
2 2
3 3
- y값을 먼저 오름차순으로 정렬하고, x값을 오름차순으로 정렬하면 y값이 x값의 정렬에 따라 다시 변경된다.
🔎 다른풀이
n=int(input())
place = [list(map(int,input().split())) for _ in range(n)]
place.sort(key=lambda x:(x[1], x[0]))
for i in place:
print(i[0],i[1])
- 정렬옵션에 key순서를 y좌표, x좌표 순으로 쓴다.
📒 다시보기
[Python] 10. 함수(function)
함수란? - 특정한 기능을 수행하기 위해 사전에 만들어 놓은 프로그래밍 구문을 묶어 놓은 것 함수의 종류 내장함수) 별도의 라이브러리를 설치하지 않고 사용할 수 있는 함수 외장함수) 별도의
somin0416.tistory.com
[Python] 12. sort()메소드와 sorted()함수
sort() 메소드 sort()는 메소드로 특정 자료(리스트)에 대해 정렬 기능을 수행 sort(): 오름차순 정렬 / sort(reverse = True): 내림차순 정렬 메소드는 반환값이 없기 때문에 기존 객체(리스트)를 정렬 ex_list
somin0416.tistory.com
백준[11650.좌표 정렬하기] | Python
✏️ 문제 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 1
somin0416.tistory.com
백준[10814.나이순 정렬] | Python
✏️ 문제 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면
somin0416.tistory.com
'Python > online judge' 카테고리의 다른 글
백준 [2798.블랙잭] | Python (0) | 2024.01.29 |
---|---|
백준 [10814.나이순 정렬] | Python (0) | 2024.01.29 |
백준 [3009.네 번째 점] | Python (0) | 2024.01.29 |
백준 [1181.단어 정렬] | Python (0) | 2024.01.15 |
백준 [2745.진법 변환] | Python (0) | 2024.01.12 |