문제
우리는 스마트 폰을 사용하면서 여러 가지 앱(App)을 실행하게 된다.
대개의 경우 화면에 보이는 "실행중"인 앱은 하나뿐이지만 보이지 않는 상태로 많은 앱이 "활성화"되어 있다.
앱들이 활성화되어 있다는 것은 화면에 보이지 않더라도 메인메모리에 직전의 상태가 기록되어 있는 것을 말한다.
현재 실행중이 아니더라도 이렇게 메모리에 남겨두는 이유는 사용자가 이전에 실행하던 앱을 다시 불러올 때에
직전의 상태를 메인메모리로부터 읽어 들여 실행 준비를 빠르게 마치기 위해서이다.
하지만 스마트 폰의 메모리는 제한적이기 때문에 한번이라도 실행했던 모든 앱을 활성화된 채로 메인메모리에 남겨두다 보면
메모리 부족 상태가 오기 쉽다. 새로운 앱을 실행시키기 위해 필요한 메모리가 부족해지면
스마트 폰의 운영체제는 활성화 되어 있는 앱들 중 몇 개를 선택하여 메모리로부터 삭제하는 수밖에 없다.
이러한 과정을 앱의 "비활성화"라고 한다.
메모리 부족 상황에서 활성화 되어 있는 앱들을 무작위로 필요한 메모리만큼 비활성화 하는 것은 좋은 방법이 아니다.
비활성화된 앱들을 재실행할 경우 그만큼 시간이 더 필요하기 때문이다.
여러 분은 이러한 앱의 비활성화 문제를 스마트하게 해결하기 위한 프로그램을 작성해야 한다.
현재
또한, 앱
이러한 상황에서 사용자가 새로운 앱
즉, 현재 활성화 되어 있는 앱
여러분은 그 중에서 비활성화 했을 경우의 비용
입력
입력파일은 3줄로 이루어져 있다.
첫 줄에는 정수
둘째 줄의
셋째 줄의 정수는 각 앱을 비활성화 했을 경우의 비용
단,
출력
필요한 메모리
예제1
560
30 10 20 35 40
3 0 3 5 4
6