[algorithm] 백준 11651 - 좌표 정렬하기2
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 백준 11651번 문제 - 좌표 정렬하기2 의 풀이를 살펴보도록 하겠습니다.
풀이에 사용한 언어는 Python3 입니다.
문제 해석과 풀이 다 함께 살펴보시죠.
백준 BAEKJOON 11651
문제 해석
이번 문제는 11650번 문제와 비슷한 문제이지만 정렬을 하는 기준이 y좌표가 우선인 정렬을 원하는 문제입니다.
[algorithm] 백준 11650 - 좌표 정렬하기 보러가기
11650번을 풀면서 사용한 방식을 비슷하게 사용하기 위해 입력값을 받은 뒤 거꾸로 저장하는 방식은 어떨까요?
풀이
# 11651 좌표 정렬하기2
n = int(input())
coordinate = [list(map(int, input().split()))[::-1] for _ in range(n)]
coordinate.sort()
for i in coordinate:
print(i[1], i[0])
#print(*reversed(i))
풀이 해석 및 팁
comprehension 방식으로 리스트를 구성하는 곳을 살펴보면 [::-1]이 보입니다.
이는 리스트의 슬라이싱을 이용해 리스트의 요소들을 뒤에서부터 처음까지 거꾸로 뒤집어줍니다.
그러면 y좌표가 앞에 나오는 리스트들이 coordinate에 추가가 되는 그림이 그려집니다.
그리고 리스트의 매서드 sort()를 사용해 정렬을 한 뒤 출력할 때만 문제에서 원하는 x좌표 y좌표 순으로 출력을
해주면 문제가 해결됩니다.
출력 방식은 asterisk를 사용할 수도 있고 단순하게 인덱스에 접근해서 출력해도 무관합니다.
여기까지 백준 11651번 좌표 정렬하기2 문제 풀이였습니다.
이번 문제의 정답률은 66% 정도 입니다.
바로 앞 문제와 비슷한 풀이 방식이기 때문에 정답률이 비교적 높은 것으로 보입니다.
리스트를 뒤집어 주는 방식에는 슬라이싱과 내장함수 reversed() 그리고 리스트의 매서드 reverse()가
있으니 3가지 방법을 다 사용해보시길 바랍니다.
감사합니다.
반응형
'programming > algorithm' 카테고리의 다른 글
[algorithm] 백준 10814 - 나이순 정렬 (0) | 2023.04.18 |
---|---|
[algorithm] 백준 1181 - 단어 정렬 (0) | 2023.04.17 |
[algorithm] 백준 11650 - 좌표 정렬하기 (0) | 2023.04.15 |
[algorithm] 백준 1427 - 소트인사이드 (0) | 2023.04.14 |
[algorithm] 백준 10989 - 수 정렬하기3 (0) | 2023.04.13 |