https://www.acmicpc.net/problem/10814
import sys
input = sys.stdin.readline
arr = [input().split() for _ in range(int(input()))]
arr.sort(key=lambda i: int(i[0]))
print("\n".join(f"{x} {y}" for x, y in arr))
i == ['21', 'Junkyu']
에서 나이 int(i[0]) == 21
를 기준으로 sort
import sys
input = sys.stdin.readline
arr = [input().split() for _ in range(int(input()))]
arr = sorted([(int(age), i, name) for i, (age, name) in enumerate(arr)])
for age, i, name in arr:
print(age, name)
key=lambda
대신 enumerate
와 list comporehension
을 사용한 풀이다.-
만 붙여주면 되고, 정렬 기준을 바꿀 땐 tuple 안의 변수 순서만 바꾸면 돼서 유연한 사용이 가능할 것 같다.# 코드 이해
for i, (age, name) in enumerate(arr)])
# 0, (21, Junkyu)
# 1, (21, Dohyun)
# 2, (20, Sungyoung)
이때 '나이 -> 입력 순서' 순으로 정렬하기 위해
(int(age), i, name)으로 저장한다.