반응형
풀이
- 그리디 알고리즘로 풀어야 하는 문제인 것 같아 그리디 알고리즘에 사용될 수 있는 기준점이 뭐가 있나 살펴보았다.
- 회의 시간 , 회의 시작시간 , 회의 끝나는 시간 정도로 추려졌고 3가지 경우에 대해서 생각해본 결과 끝나는 시간으로 그리디 알고리즘을 진행하니 풀리는 문제였다.
- 회의가 끝나는 시간이 같은 경우들에서도 따로 정렬이 필요해 회의가 끝나는 시간으로 정렬하고 이후 회의가 시작하는 시간으로 한번더 정렬을 해 그리디 알고리즘을 진행하였다.
import sys
n = int(sys.stdin.readline())
stack = []
for _ in range(n):
s ,f = map(int, sys.stdin.readline().split())
stack.append([s,f,f-s]) # f-s는 총 회의시간 , 코드에서 사용하지 않음
stack.sort(key = lambda x : (x[1],x[0]))
ans = 0
fn_time = 0
for i in range(0,len(stack)):
if stack[i][0] >= fn_time:
fn_time = stack[i][1]
ans += 1
print(ans)
반응형
'코딩 > 백준' 카테고리의 다른 글
알고리즘 - Python / 백준 - 1389번 : 케빈 베이컨의 6단계 법칙 (0) | 2021.08.31 |
---|---|
알고리즘 - Python / 백준 - 18870번 : 좌표 압축 (0) | 2021.08.29 |
알고리즘 - Python / 백준 - 1541번 : 잃어버린 괄호 (0) | 2021.08.25 |
알고리즘 - Python / 백준 - 11286번 : 절댓값 힙 (0) | 2021.08.25 |
알고리즘 - Python / 백준 - 11279번 : 최대 힙 (0) | 2021.08.24 |