하나의 숫자 n이 있다고 가정합니다. 여기서 n은 n개의 가득 찬 맥주병을 나타냅니다. 빈 맥주병 3병을 가득 찬 맥주 1병으로 바꿀 수 있다면 우리가 마실 수 있는 맥주병의 수를 찾아야 합니다.
따라서 입력이 10과 같으면 출력은 14가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
solve() 함수를 정의하면 n이 필요합니다.
-
ret :=0
-
n>=3인 동안 −
-
q :=n / 3
-
렛 :=렛 + q * 3
-
n :=n - q * 3
-
n :=n + q
-
-
렛 :=렛 + n
-
리턴 렛
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int solve(int n) {
int ret = 0;
while(n >= 3){
int q = n / 3;
ret += q * 3;
n -= q * 3;
n += q;
}
ret += n;
return ret;
}
};
main() {
Solution ob;
cout << ob.solve(10);
} 입력
10
출력
14