그리디 알고리즘01 회의실 배정 (정올)
처음으로 100점이 나왔다.
정말 쉬운 문제이긴 하지만
답을 보지 않고 처음부터 끝까지
내가 푼 문제라 더 뿌듯하다.
물론 최적화된 코드는 절대 아니다.
1. 일단 종료시간을 기준으로 오름차순으로 정렬
2. 정렬된 후에 맨 앞에 있는 회의는 무조건 맨 처음에 들어갈 수 있다.
따라서 FindAnswer(0) 으로 함수를 호출한다.
3. if(0번 째 회의라면) 넌 답이니까 v에 들어가라.
4. 그리고 다음 회의를 찾아간다.
for문으로 자신의 오른쪽 방향으로 하나씩 탐색.
맨 처음에 들어갈 회의가 결정났기 때문에
맨 처음 회의의 종료시간과 그 다음 회의의
시작시간을 비교 if(종료시간 <= 다음 놈 시작시간)
5. 해당하는 회의를 찾았다면 그 회의의 num을
v에다가 집어 넣고, 그 회의의 인덱스로
다시 FindAnswer(index) 함수 호출.
그리고 본 함수는 종료시켜준다. return;
6. 재귀를 통해 답을 찾다가
해당하는 회의가 없어 for문 루프를 빠져나오면
함수를 종료 시킨다. return;
'알고리즘' 카테고리의 다른 글
[알고리즘][그리디] 도서관 문제 (정올) (0) | 2016.12.27 |
---|---|
[알고리즘][그리디] 냉장고 문제 (정올) (0) | 2016.12.27 |
[알고리즘][그리디] 소시지 공장 (정올) (0) | 2016.12.22 |
[그리디] 소시지 공장 (0) | 2016.12.16 |
[알고리즘][완전 탐색] 보글 게임 알고리즘 (0) | 2016.12.15 |