본문 바로가기
Problem Solving/BOJ

[BOJ][Python]11651 풀이

by NoiB 2021. 12. 6.
반응형

정렬 안하기로 해놓고 또 들고 왔죠 허허... 4문제 정도 남은게 거슬려서 후딱 하고 치우려고 합니다.

이제 다음주부터 대학생활의 마지막 기말고사가 시작이라 엄청 열심히는 못할거 같지만 최대한 노력해봐야죠.

 

문제 링크 : 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

 

코드 : 

t = int(input())
point = []
for i in range(t):
    point.append(input().split())
point.sort(key = lambda x : (int(x[1]), int(x[0])))
for i in range(t):
    print(f'{point[i][0]} {point[i][1]}')

이번 문제는 지난번 포스팅과 거의 같지만 테스트 케이스의 갯수가 상당히 늘어서 지금 이대로 풀면 엄청 힘들게 돌아갑니다. 파이썬의 sort()함수가 O(nlogn) 인 것으로 알고 있는데 좀 더 빠르게 하려면 이것보다 빠른 알고리즘을 사용해야겠죠. 아마 counting sort로 구현이 가능할 것으로 생각합니다. 데이터 갯수가 x,y 둘다 20000개 정도밖에 안되니까요. 하지만 시간이 별로 없는 관계로 다음에 여유가 좀 생기면 한 번 이때까지 제출한 백준문제를 전부 뜯어고쳐보는 시간을 가져야겠습니다.

반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ][Python]백준 9663번 풀이  (0) 2021.12.19
[BOJ][Python]5956번 풀이  (0) 2021.12.18
[BOJ][Python]11650번 풀이  (0) 2021.11.27
[BOJ][Python]1427번 풀이  (0) 2021.11.25