Python 백준 11651 좌표정렬하기2 / 파이썬 알고리즘
https://www.acmicpc.net/problem/11651
import sys
input = sys.stdin.readline
n = int(input())
array = []
for i in range(n):
[x, y] = map(int, input().split())
array.append([y, x])
s_array = sorted(array)
for m in s_array:
print(m[1], m[0])
sys를 활용해 시간을 줄이도록 한다.
array = []
for i in range(n):
[x, y] = map(int, input().split())
array.append([y, x])
array로 빈 리스트를 만든다.
여기서 for문은 처음에 입력한 값인 숫자만큼 돌려서 숫자만큼 input할 수 있게 해준다.
input된 값은 [x, y]의 리스트 형식으로 array 리스트에 append한다.
여기서 주의할 점은 y의 순서대로 비교해야하니, [x, y] 그대로 넣는게 아니라 [y, x]의 순서로 넣어준다.
s_array = sorted(array)
for m in s_array:
print(m[1], m[0])
s_array라고 array의 정렬된 값을 넣어준다.
s_array의 새 리스트 말고 array.sort() 를 해도 상관없다. 이럴 경우 밑의 포문도 array만큼 돌려주면 된다.
마지막 for문으로 s_array의 범위만큼 돌려주고,
print해준다.
m[1]은 인덱스가 리스트형식으로 저장되어있기 때문에,
m[1] -> 0번째 인덱스의 1번째 인덱스 라고 생각하면 된다.
즉 [ [0 , 4 ] , [ -1 , -1] ..... ] 이렇게 되어 있다고 가정하면,
m[1]은 [0, 4]를 끄집어 내와서 1번째 값인 4이다.
m[1], m[0]으로 출력하는 이유는 처음에 비교를 하기 위해 x, y의 값을 바꿨기 때문에, 다시 처음의 x, y값으로 때문이다.
'Back > Algorithm' 카테고리의 다른 글
Python 병합정렬 알고리즘 (0) | 2021.03.10 |
---|---|
Python 백준 2805 나무자르기 / 이진탐색 알고리즘 (0) | 2021.03.09 |
Python 재귀함수 알고리즘 - 백준 11729 하노이탑 (0) | 2021.03.09 |
Python 재귀함수 알고리즘 Factorial, 회문 검사 (0) | 2021.03.09 |
Python 이진탐색 알고리즘 (0) | 2021.03.08 |