하나의 숫자 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