[7급 국가직 알고리즘 2025년 20번]

작업 선택 문제를 다루는 다음 알고리즘은 각 작업의 시작 시간 s와 완료 시간 f가 정해진 개의 작업 t[0..n-1]가 주어질 때, 하나의 기계만 사용하여 충돌 없이 수행할 수 있는 최대 개수의 작업을 선택한다. 이 알고리즘의 (가), (나)에 들어갈 내용을 바르게 연결한 것은? (단, n ≥ 2인 정수, count는 선택한 작업의 개수, t[i].s는 작업 t[i]의 시작 시간, t[i].f는 작업 t[i]의 종료 시간이고, jobs 배열은 선택된 작업을 저장한다)
ActSelect(n, t[]) {
	(가)의 오름차순으로 작업 t[]를 정렬;
	count = 0, last = 0, jobs[];
	jobs[count] = 0;
	for(i = 0; i < n; i++)
		if((나)) {
			count++;
			last = i;
			jobs[count] = last;
		}
	return jobs;
}
(가) (나)
알고리즘
  1. ①시작 시간 t[i].s >= t[last].f
  2. ②시작 시간 t[i].f >= t[last].s
  3. ③완료 시간 t[i].s >= t[last].f
  4. ④완료 시간 t[i].f >= t[last].s

선지를 골라 바로 채점해 보세요.

정답 ③

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고