자료 구조와 알고리즘

용량 8인 배낭에 (무게, 가치)가 (2, 3), (3, 4), (4, 5), (5, 6)인 4개의 물건 중에서 골라 넣는다. 각 물건은 하나씩밖에 없고 나눌 수 없다. 무게의 합계가 8 이하일 때 가치 합계의 최댓값은 얼마인가?

  1. A7
  2. B9
  3. C10
정답과 해설 보기

정답: C. 10

무게 3과 5인 물건을 고르면 무게 8에 가치는 4 + 6 = 10이 되며, 이것이 최대입니다. 무게 2와 5(가치 9)나 3과 4(가치 9)도 들어가지만 10에는 미치지 못하고, 3개를 고르면 가장 가벼운 2 + 3 + 4라도 9로 용량을 넘습니다. 무게당 가치가 높은 순서로 채우는 탐욕 알고리즘에서는 무게 2와 3(가치 7)을 넣은 뒤 남은 용량 3에 들어갈 물건이 없어 7에서 멈춥니다. 동적 계획법에서는 '용량 c까지로 달성할 수 있는 최대 가치'를 물건마다 표로 갱신하여, 물건 수 n과 용량 W에 대해 O(nW)로 최적의 값을 구합니다.

이 분야 연습하기 분야로 돌아가기

자료 구조와 알고리즘의 다른 문제

  1. 문자열 안에서 패턴을 찾는 BM법(보이어-무어 알고리즘)의 특징으로 올바른 것은?
  2. 가변 길이 배열에서, 용량이 가득 찼을 때 원소를 추가하면 2배 용량의 영역을 새로 확보하여 모든 원소를 복사한다. 용량 1인 빈 배열에 원소를 하나씩 1,000개 추가했을 때, 복사되는 원소의 총수는?
  3. 원소 수가 많고 적재율을 0.5 정도로 유지한 해시 테이블에서, 선형 탐사의 개방 주소법이 체이닝(연결 리스트로 잇는 방법)보다 빨라지기 쉬운 이유로 가장 적절한 것은?
  4. GPU 같은 병렬 처리 장치에서 정렬을 수행할 때, 바이토닉 정렬처럼 비교·교환 절차가 정해져 있는 정렬(정렬 네트워크)이 쓰이는 경우가 있다. 그 이유로 올바른 것은?
  5. 원소 수가 n인 배열에서 서로 다른 두 원소의 쌍을 모두 한 번씩 비교하는 처리(i번째 원소를 그보다 뒤에 있는 모든 원소와 비교하는 것을, i를 하나씩 늘려 가며 반복하는 이중 루프)의 시간 복잡도는?