728x90
반응형
문제 출처 :
문제 풀이 :
- 이 문제에서 살펴보아야할 점은 끝나는 시간과 시작하는 시간이 같다면 바로 시작할 수 있다는 점이다.
- 때문에 주어진 회의시간을 끝나는 시간, 시작 시간으로 정렬한 뒤에 가장 먼저 시작해서 짧은 거 순으로 넣으면 그것이 전체에서도 최대가 될 것이라고 생각한다.
- 앞쪽에서 시간을 조금 잡아 먹을 수록 뒤에서 고려해 줄 수 있는 것이 많기 떄문이다.
- 때문이 이것은 그리디로 풀 수 있다.
n = int(input())
meeting = []
for i in range(n):
start, end = map(int,input().split())
meeting.append((start,end))
meeting.sort(key=lambda x:(x[1],x[0]))
def greedy(a):
start_time = 0
meeting_cnt =0
for time in a:n = int(input())
meeting = []
for i in range(n):
start, end = map(int,input().split())
meeting.append((start,end))
meeting.sort(key=lambda x:(x[1],x[0]))
def greedy(a):
start_time = 0
meeting_cnt =0
for time in a:
if time[0] >= start_time:
#print(time[0],end=' ')
start_time = time[1]
#print(start_time)
meeting_cnt +=1
return meeting_cnt
print(greedy(meeting))
if time[0] >= start_time:
#print(time[0],end=' ')
start_time = time[1]
#print(start_time)
meeting_cnt +=1
return meeting_cnt
print(greedy(meeting))
- 함께 풀어보면 좋은 문제 : 회의실 배정 3
반응형
'Computer Science > Algorithm' 카테고리의 다른 글
[백준] 2529 - 부등호 (Python) (0) | 2021.04.02 |
---|---|
[백준] 2217 - 로프 (Python) (0) | 2021.03.30 |
[백준] 11053 - 가장 긴 증가하는 부분 수열 (C++) (0) | 2021.03.26 |
[백준] 11047 - 동전 0 (Python) (0) | 2021.03.26 |
[백준] 11052 - 카드 구매하기 (Python) (0) | 2021.03.25 |