티스토리 뷰

728x90
반응형

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

 

 

나의 코드

import sys
arr = []
for i in range(int(sys.stdin.readline())):
    arr.append(list(map(int,sys.stdin.readline().split(' '))))

arr.sort(key = lambda x:(x[1],x[0]))
for i in range(len(arr)):
    print(' '.join(map(str,arr[i])))

 

다른 사람 코드

from sys import stdin

input = stdin.readline
l = [input() for _ in range(int(input()))]
l.sort(key=lambda a: (int(a.split()[1]), int(a.split()[0])))
print("".join(l))

 

나는 그냥 문자열 입력받음과 동시에 split해서 리스트로 만든 다음 arr 리스트에 넣어서 arr 이 2중 리스트가 되도록 구현했다.

그래서 print할 때 for문을 쓸 수 밖에 없었다.

 

근데 다른 사람의 코드는 그냥 문자열 째로 배열에 저장하고, 정렬기준을 split()한거를 정수형으로 바꿔서했다.

이중 리스트에 저장하지 않았기 때문에 출력할 때 for문 사용 안해도 되도록 구현했다.

좋은듯 .. 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함