본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 1716. Calculate Money in Leetcode Bank

반응형

https://leetcode.com/problems/calculate-money-in-leetcode-bank/description/

규칙대로 구현하는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

일별 예금 금액 vector depositAmountPerDay를 선언 후 n + 1개의 방과 각 방을 0으로 초기화해줍니다.

📔 풀이과정

n만큼 원소를 순회하며 다음을 수행합니다.

1. 현재 날이 7번째 날 초과면서 월요일이라면 저번주 월요일의 저금양 + 1만큼 예금합니다.

2. 이외에 전날의 저금양 + 1만큼 예금합니다.

3. deplositAmountPerDay의 원소를 순회하며 전체 저금양을 지역 변수 sum을 선언해 해당 원소값드를 누적해 저장합니다.

📔 정답 출력 | 반환

sum을 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int totalMoney(int n) {
        vector <int> depositAmountPerDay(n+1, 0);
        for(int i = 1; i <= n; i++) {
            if(i > 7 && i % 7 == 1) {
                depositAmountPerDay[i] += depositAmountPerDay[i-7] + 1;
            } else {
                depositAmountPerDay[i] += depositAmountPerDay[i-1] + 1;
            }
        }
        int sum = 0;
        for(int i = 1; i <= n; i++) {
            sum += depositAmountPerDay[i];
        }
        return sum;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.