개발자 블로그
1931번: 회의실 배정 본문
나의 풀이
n = int(input())
meeting_times = [tuple(map(int, input().split())) for _ in range(n)]
meeting_times.sort(key=lambda x: (x[1], x[0]))
stack = [meeting_times[0]]
for i in meeting_times[1:]:
if i[0] >= stack[-1][1]:
stack.append(i)
print(len(stack))
1) 입력값을 튜플형태로 리스트로 받는다.
2) 우선순위 정렬을 끝나는 시간 -> 시작하는 시간 순으로 정렬
* 정렬을 할 때, 우선순위에 따라 복수의 key를 설정할 때, 위와 같이 key=(1순위, 2순위, 3...) 순으로 두면 된다. 이번 문제의 핵심
3) stack의 자료구조를 활용해서 끝나는 시간과 다음 시작하는 시간이 조건에 맞으면 추가!
4) stack의 길이가 최고 회의의 갯수
'알고리즘 > 백준' 카테고리의 다른 글
2667번 단지번호붙이기 (0) | 2022.07.17 |
---|---|
1406번 에디터 (0) | 2022.07.05 |
2750번: 수정렬하기2 (0) | 2022.07.04 |
10610번 '30' (0) | 2022.07.01 |
13305번 주유소 (0) | 2022.06.30 |