10814 나이순 정렬
업데이트:
1. 문제
문제는 링크에 들어가면 있다.
2. 정답 코드
문제의 내 정답 코드는 다음과 같다.
import sys
read = sys.stdin.readline
N = int(read())
age_array = [0]*201 # 1살~200살
member_array = []
for i in range(N):
age,name = read().split()
age = int(age)
ordered = age_array[age] + 1
age_array[age] += 1
member_array.append([age,name,ordered])
member_array.sort(key=lambda x:(x[0],x[2]))
# member_array.sort(key=lambda x:x[2])
for j in range(N):
print("{} {}".format(member_array[j][0],member_array[j][1]))
3. 문제 풀이
이 문제는 전형적인 sort(key)를 사용하는 문제다. 이 때, 나이와 이름만 주어지기 때문에 나이순으로 정렬한 뒤, 가입된 순으로 정렬하려면 따로 가입된 순으로 정렬해주기위한 번호를 붙여야한다. 그래서 나는 age_array를 만들어서 번호를 붙여주었다.
그리고 member_array를 만들어서 정보를 저장하고 sort(key)를 사용해서 나이(x[0])로 정렬하고 그 안에서 가입된 순(x[2])으로 정렬하는 것을 수행했다.