넘치게 채우기

[LeetCode] 1716. Calculate Money in Leetcode Bank 본문

PS/LeetCode

[LeetCode] 1716. Calculate Money in Leetcode Bank

riveroverflow 2023. 12. 6. 11:10
728x90
반응형

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

 

Calculate Money in Leetcode Bank - LeetCode

Can you solve this real interview question? Calculate Money in Leetcode Bank - Hercy wants to save money for his first car. He puts money in the Leetcode bank every day. He starts by putting in $1 on Monday, the first day. Every day from Tuesday to Sunday

leetcode.com

leetcode - Calculete Money in Leetcode Bank

문제 유형 : 구현

문제 난이도 : Easy

 

문제

Hercy wants to save money for his first car. He puts money in the Leetcode bank every day.

He starts by putting in $1 on Monday, the first day. Every day from Tuesday to Sunday, he will put in $1 more than the day before. On every subsequent Monday, he will put in $1 more than the previous Monday.

Given n, return the total amount of money he will have in the Leetcode bank at the end of the nth day.

 

Hercy는 그의 첫 차를 위해 저축을 하고 싶어합니다. 그는 매일 Leetcode bank에 돈을 넣습니다.

그는 월요일에 1달러를 넣는 걸로 시작합니다. 화요일부터 일요일까지는, 그는 전날에 입급한 양보다 1달러 더 입금합니다.

그 다음주 월요일에는, 이전 월요일보다 1달러 더 입금합니다.

정수 n이 주어집니다. n번째 날에 그가 계좌에 가지고 있을 돈을 반환하시오.

 

 

풀이

그대로 구현해주면 된다~

전체 양을 담는 sum

요일의 weekday

몇 번째 주인지 저장하는 week 변수를 만든다.

for문으로 n까지 반복시킨다:

    만약 weekday가 7 이상이 된다면, 한 주가 자났다는 뜻으로, 모듈러 7을 해주고, 한 주 넘어간걸로 표시한다.

    sum에는 매번 week + weekday만큼 누적시킨다.

끝나면 sum을 반환한다.

 

 

코드

C++

class Solution {
public:
    int totalMoney(int n) {
        int sum = 0;
        int week = 1;
        int weekday = 0;
        for(int i = 0; i < n; i++, weekday++) {
            if(weekday >= 7) {
                week++;
                weekday %=7;
            }
            sum += week + weekday;
        }

        return sum;
    }
};
728x90
반응형