반응형
https://leetcode.com/problems/water-bottles/description/
간단 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
먼저 마시고 시작합니다. 정답 변수 drank를 선언해 numBottles만큼 값을 할당합니다.
📔 풀이과정
더 이상 교환 불가할 때까지 while loop를 돌며 다음을 수행합니다.
1. 교환 가능한 물병 개수 exchanged = numBottles / numExchange 입니다. 이를 지역 변수를 선언해 저장합니다.
2. 이외의 물병 개수 surplus = numBottles % numExchange가 됩니다. 이를 지역 변수를 선언해 저장합니다.
3. 교환한 물병 개수만큼 마셔줍니다. 즉, drank에 exchanged값을 누적해 더해줍니다.
4. 다 마시고 남은 물병 개수와 surplus를 더한 값이 남은 빈 병 개수가 되므로 numBottles값을 갱신해줍니다.
📔 정답 출력 | 반환
drank를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
int numWaterBottles(int numBottles, int numExchange) {
int drank = numBottles;
while(numBottles >= numExchange) {
int exchanged = numBottles / numExchange;
int surplus = numBottles % numExchange;
drank += exchanged;
numBottles = exchanged + surplus;
}
return drank;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - LeetCode (easy) 1556. Thousand Separator (0) | 2024.04.25 |
---|---|
(C++) - LeetCode (easy) 1550. Three Consecutive Odds (0) | 2024.04.24 |
(C++) - LeetCode (easy) 1507. Reformat Date (0) | 2024.04.11 |
(C++) - LeetCode (easy) 1496. Path Crossing (0) | 2024.04.08 |
(C++) - LeetCode (easy) 1496. Path Crossing (0) | 2024.04.05 |