[백준 / Python] 11650번 : 좌표 정렬하기

개발자가 되고 싶어요 ㅣ 2023. 1. 28. 01:34

https://www.acmicpc.net/problem/11650

 

11650번: 좌표 정렬하기

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

 

 

첫번째 시도한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import sys
input = sys.stdin.readline
 
= int(input())
 
pointList = [[0,0]] * n
 
for i in range(n):    
    pointList[i] = list(map(int,input().split()))
 
pointList.sort()
 
answer = ""
 
for j in pointList:
    answer += str(j[0]) + " " + str(j[1]) + "\n"
 
print(answer.rstrip())
 
cs

 

 

두번째 시도한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
input = sys.stdin.readline
 
= int(input())
 
pointList = [[0,0]] * n
 
for i in range(n):
    pointList[i] = list(map(int,input().split()))
 
pointList.sort()
 
for j in pointList:
    print(j[0],j[1])
cs

 

 

아마도 첫번째 코드에서 시간 초과가 뜨는 이유는 str() 함수 때문인것 같다.

그래서 수정하여 제출 했더니 통과였다.

매번 str()로 변환시켜주는 것보다 하나씩 print() 하는게 시간복잡도가 덜 복잡하다는 사실을 알게 되었다.