문제
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
입력
- 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231-1보다 작거나 같은 자연수 또는 0이다.
출력
- 첫째 줄에 최대 사용할 수 있는 회의의 최대 개수를 출력한다.
문제 풀이
- 각 회의시간을 비교하기 위해 time 리스트에 저장
- 이전 회의가 끝난 시간과 시작하려는 회의가 시작하는 시간이 같거나 시작하려는 시간이 더 늦어야 회의 가능
- 최대 회의 시간을 세기 위해, 회의가 일찍 끝나는 순으로 정렬한 후, 만약 같다면, 더 일찍 시작하는 회의 순으로 정렬
- 정렬을 마친 후, 회의가 끝난 시간과 시작하려는 시간을 비교하여 같거나 크다면 카운트
- 카운트 한 후, 회의가 끝나는 시간 업데이트
- 회의 가능한 수 출력
코드
n = int(input())
time = []
end_time = 0
count = 0
for _ in range(n):
time.append(list(map(int,input().split())))
time = sorted(time,key = lambda x:(x[1],x[0]))
for i, j in time:
if end_time <= i:
count += 1
end_time = j
print(count)
람다 함수
파이썬 코딩 도장: 32.1 람다 표현식으로 함수 만들기
Unit 32. 람다 표현식 사용하기 지금까지 def로 함수를 정의해서 사용했습니다. 이번에는 람다 표현식으로 익명 함수를 만드는 방법을 알아보겠습니다. 람다 표현식은 식 형태로 되어 있다고 해서
dojang.io
'Algorithm > 백준' 카테고리의 다른 글
| [Python] 1541번 '잃어버린 괄호' (0) | 2023.01.18 |
|---|---|
| [Python] 백준 11399번 'ATM' (0) | 2023.01.17 |
| [Python] 백준 16928번 '뱀과 사다리 게임' (DFS/BFS) (0) | 2023.01.09 |
| [Python] 백준 11047번 "동전 0" (그리디) (0) | 2023.01.04 |
| [Python] 백준 24445번(DFS/BFS) (0) | 2023.01.03 |