반응형

   문제

   https://www.acmicpc.net/problem/1931


회의를 끝나는 기준으로 봐야한다.

빨리 끝나는 것을 기준으로 정렬하고 차례대로 다음 회의가 시작할수있는 시간중 가장 빠

 시간을 골라 회의를 잡으면된다.이렇게 하기 위해선 두번의 정렬이 필요하다 먼저 시작

시간을 기준으로 정렬후 빨리 끝나는순으로 정렬한다.

그뒤 끝나는 순서대로 차례대로 비교해가며 다음에 시작할수 있는 회의를 찾는다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
N=int(input())
 
conference_list=[list(map(int,sys.stdin.readline().split())) for _ in range(N)]
conference_list=sorted(conference_list,key=lambda x:x[0])#시작시간으로 먼저정렬
conference_list=sorted(conference_list,key=lambda x:x[1])#끝나는시간으로 정렬
# conference_list=sorted(conference_list,key=lambda x:(x[1],x[0]))#위코드와 동일
 
endtime=conference_list[0][1]
count=1
for i in range(1,N):
    if conference_list[i][0]>=endtime:#끝나는시간보다 늦거나 같게 시작한다면
        endtime=conference_list[i][1]#해당회의를 넣고 끝나는 시간을 바꿔준다.
        count+=1
 
print(count)

cs




반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기