jymaeng95   6달 전

물병 문제를 2의 제곱값을 이용해 횟수를 줄이는 방법으로 접근해보았습니다. 

해당 접근으로 잘 되지 않아 매 순간 물병을 구매하는 방식으로 다시 구현해 정답은 맞췄으나 실패한 코드의 접근법이 아주 많이 잘못되었다고 느껴지지 않아 어느 부분에서 실수가 있었는지 궁금함이 들어 질문게시판에 글을 남깁니다! 

1. K-1 번 돌면서 남은 물병보다 작은 2의 base 제곱 값을 빼준다. -> 최대한 많은 물병을 하나의 물병으로 합치는 로직

2. 마지막까지 남은 물병은 하나의 물병으로 합치는 것이 불가능 하기 때문에 남은 물병보다 크면서 가장 작은 2의 제곱수를 구한다. -> 남은 물병이 40개면 남은 물병보다 크면서 가장 작은 2의 제곱수는 64

3. 구한 제곱 수에서 남은 물병을 빼준다. = 추가로 구매할 물병의 개수

어떤 부분에서 접근이 잘못되었을까요..?

jymaeng95   6달 전

자문자답입니다! 

실패코드에서 1번 조건의 반복문을 진행할 때 n의 값이 0이되는 경우를 빼먹었습니다! 

남은 물병의 개수가 0이면 더이상 합칠 물병이 없으므로 0을 반환해주면 됩니다 !

댓글을 작성하려면 로그인해야 합니다.