나이가 같다면 입력 받은 순서 그대로 출력해야 한다.
배열에 age와 name을 넣을 때 i도 같이 넣어준다.
ans.append([int(age), i, name])
ans.sort()
혹은 람다식을 이용하는 방법도 있다.
ans.append([int(age), name])
ans.sort(key=lambda x:x[0]) # age, name 중 age만 비교
age는 반드시 int 형변환을 해주어야 한다. str로 출력하면 답이 맞아도 틀렸다고 뜬다고 한다.
import sys
n = int(sys.stdin.readline())
ans = []
for i in range(n):
age, name = map(str, sys.stdin.readline().split())
ans.append([int(age), i, name])
ans.sort()
for i in range(n):
print(ans[i][0], ans[i][2])
처음에 코드를 짰을 때 같은 나이인 인덱스가 뒤바껴서 출력됐다. 찾아보니 i값도 함께 저장해서 출력해야 들어간 순서대로 나오는 것이었다.