15. 그리디 알고리즘
CLASS 3
ESSENTIAL
회의를 최대한 많이 진행할 수 있게 할 때 최대 회의 횟수를 구하는 문제입니다. 이 경우에는 회의의 끝나는 시간이 중요합니다. 일찍 끝난 회의일수록 다음 회의의 시작 시간이 빨라지기 때문이죠. 그만큼 넓은 선택권이 생기는 것입니다. 따라서 회의의 끝나는 시간을 기준으로 회의를 정렬합니다. 또한 시작 시간과 끝나는 시간이 같은 회의가 존재할 수 있으므로 정렬 시 시작 시간도 부가적으로 고려합니다. 이제 정렬된 상태에서 첫 번째 회의는 무조건 진행합니다. 이 회의의 끝나는 시간을 기록해두고, 정렬된 배열 기준 다음 원소를 순회하면서 시작 시간이 저장된 시간보다 늦거나 같다면 회의를 진행하는 것으로 하고 이 회의의 끝나는 시간을 또 저장합니다. 이렇게 진행한 회의의 개수를 출력하면 됩니다.
소스 코드
언어 | 코드 | 시간 |
---|---|---|
Python 3 | 코드(Github) / 코드(백준) | 2020-04-01 23:03:34 |