01
Processing Data. Please Wait...

마법의 캔디백

Other Data Structures 초급
30초 미리보기

마법의 캔디백

당신 앞에 사탕이 들어있는 N개의 가방이 있습니다. i번째 가방에는 arr[i] 사탕이 있으며, 각 가방에는 마법이 걸려있습니다!

가방 하나에 있는 사탕을 모두 먹는 데 1분이 걸리며 (사탕의 몇 조각이 들어있든) 다 먹자마자 가방이 신비하게 다시 채워집니다. 만약 시작할 때 x개의 사탕이 가방에 있다면, 사탕을 다 먹은 다음 가방에는 floor(x/2)개의 사탕이 다시 채워집니다.

당신에게 k분이 주어진다면, 얼마나 많은 사탕을 먹을 수 있습니까?

예제 1

입력

k = 3  
arr = [2, 1, 7, 4, 2]  

출력

14
// 처음 1분에 캔디 7개를 먹습니다.
// 백에는 floor(7/2) = 3개의 캔디가 채워집니다.

// 두번째 1분에 다른 백에 있는 4개의 캔디를 먹습니다.
// 그 백에는 floor(4/2) = 2개의 캔디가 채워집니다.

// 세번째 1분에 처음 백에 다시 채워진 3개의 캔디를 먹습니다.

// 먹은 캔디의 총합계는 7 + 4 + 3 = 14개 입니다.