1. 문제와 예제
나이 순으로 출력이므로 sort를 사용하면 되겠다. 나이가 같으면 가입한 순으로 출력해야 하는 것만 유의하면 되겠다.
2. 코드
import sys
input = sys.stdin.readline
N = int(input().rstrip())
lst = []
# ex. lst = [(21, 'Junkyu'), (21, 'Dohyun'), (20, 'Sunyoung')]
for i in range(N):
age, name = input().split()
age = int(age)
lst.append((age, name))
# 특정 변수(여기서는 age)를 기준으로만 해서 정렬할 수 있음
lst.sort(key = lambda x : x[0])
for i in lst:
print("{} {}".format(i[0], i[1]))
3. 풀이
lst를 만들 때 age, name 2가지 변수값을 받기 때문에 7568번(덩치) 문제와 유사하게 (age, name) 형태로 lst에 추가해나간다.
sort를 사용하기 전에 시간 제한에 걸리지 않는지 대충 계산해보자. sort의 시간복잡도는 O(nlogn) 정도, N의 최댓값은 100,000, 시간 제한은 3초, 백준에서 연산 1억 번에 1초이므로 시간 제한에 걸리지 않겠다.
age를 기준으로는 정렬하지만 name을 기준으로는 정렬하기를 원하지 않기 때문에 이런 경우 key = lambda를 사용해서 특정 변수만을 기준으로 정렬하면 된다.
'백준' 카테고리의 다른 글
[백준] 11651번 파이썬 (좌표 정렬하기 2) (0) | 2024.03.18 |
---|---|
[백준] 11650번 파이썬 (좌표 정렬하기) (0) | 2024.03.17 |
[백준] 7568번 파이썬 (덩치) (0) | 2024.03.13 |
[백준] 2751번 파이썬 (수 정렬하기 2) (0) | 2024.03.13 |
[백준] 1676번 파이썬 (팩토리얼 0의 개수) (0) | 2024.03.12 |