반응형
문제
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 |
반응형
'알고리즘(python) > 기본' 카테고리의 다른 글
[Python]그리디 알고리즘 백준 1541 (0) | 2020.01.14 |
---|---|
[Python]그리디 알고리즘 백준 11399 (0) | 2020.01.14 |
[Python]그리디 알고리즘 백준 11047 (0) | 2020.01.14 |
[Python]동적계획법 백준 12865 (0) | 2020.01.13 |
[Python]동적계획법 백준 1912 (0) | 2020.01.12 |
최근댓글