그리디 알고리즘01 회의실 배정 (정올)


처음으로 100점이 나왔다.

정말 쉬운 문제이긴 하지만

답을 보지 않고 처음부터 끝까지

내가 푼 문제라 더 뿌듯하다.







물론 최적화된 코드는 절대 아니다.


1. 일단 종료시간을 기준으로 오름차순으로 정렬

2. 정렬된 후에 맨 앞에 있는 회의는 무조건 맨 처음에 들어갈 수 있다.

따라서 FindAnswer(0) 으로 함수를 호출한다.

3. if(0번 째 회의라면) 넌 답이니까 v에 들어가라.


4. 그리고 다음 회의를 찾아간다.

for문으로 자신의 오른쪽 방향으로 하나씩 탐색.


맨 처음에 들어갈 회의가 결정났기 때문에

맨 처음 회의의 종료시간과 그 다음 회의의

시작시간을 비교 if(종료시간 <= 다음 놈 시작시간)


5. 해당하는 회의를 찾았다면 그 회의의 num을

v에다가 집어 넣고, 그 회의의 인덱스로

다시 FindAnswer(index) 함수 호출.

그리고 본 함수는 종료시켜준다. return;


6. 재귀를 통해 답을 찾다가

해당하는 회의가 없어 for문 루프를 빠져나오면

함수를 종료 시킨다. return;




+ Recent posts