(정렬) 나이순 정렬
2020. 2. 24. 18:03ㆍ개발노트
이 문제의 저작권은 BAEKJOON에 있습니다.
https://www.acmicpc.net/problem/10814
문제는 위 링크에서 확인할 수 있습니다.
#나이순 정렬
import sys
temp = []
N = int(sys.stdin.readline())
for t in range(N):
A, B = sys.stdin.readline().split()
A = int(A)
temp.append([A, B])
while 1:
cnt = 100001
point = []
if len(temp) == 0:
break
for i in range(len(temp)-1, -1, -1):
if temp[i][0] <= cnt:
cnt = temp[i][0]
point = temp[i]
ans = map(str, temp.pop(temp.index(point)))
print(' '.join(ans))
리스트에 입력받은 숫자와 이름을 넣고 리스트의 역순으로 탐색해서 가장 작은 수를 출력했습니다.
문제에서 제시된 출력 값과 같이 출력되지만 시간이 너무 오래걸려서 시간초과가 발생했습니다.
문제에서 요구하는 시간은 3초 이내입니다.
#나이순 정렬
import sys
N = int(sys.stdin.readline())
arr = [list(sys.stdin.readline().split()) for _ in range(N)]
arr.sort(key=lambda x: int(x[0]))
for data in arr:
print(data[0], data[1])
람다를 사용한 정렬입니다.
key 값을 x[0]에 들어있는 나이 값을 사용합니다.