예제입력 1
11
1 4
3 5
0 6
5 7
3 8
5 9
6 10
8 11
8 12
2 13
12 14
from sys import stdin
input = stdin.readline
ans = 0
n = int(input())
meeting = []
for _ in range(n):
tmp = tuple(map(int, input().split()))
meeting.append(tmp)
meeting.sort(key=lambda x: (x[1], x[0]))
latest = 0
for m in meeting:
if m[0] >= latest:
latest = m[1]
ans += 1
print(ans)
일반적인 패턴은 객체의 인덱스 중 일부를 키로 사용하여 복잡한 객체를 정렬하는 것입니다. 예를 들어:
student_tuples = [ ('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10), ] sorted(student_tuples, key=lambda student: student[2]) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
처음 문제를 풀 때 회의 종료시간만 기준으로 정렬했다가
(3,3), (1,3) 같은 입력을 처리하지 못했다.
sort()에서 정렬 조건을 두개 주는 방법을 까먹었었다.