[LeetCode] Calculate Money in Leetcode Bank

아르당·2026년 6월 21일

LeetCode

목록 보기
364/583
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

Hercy는 첫 차를 사기위해 돈을 모으길 원한다. 매일 리트코드 은행에 돈을 입금한다.

첫 번째 날 월요일에 $1를 입금하는 것으로 시작한다. 화요일부터 일요일까지 매일 전날보다 $1씩 더 입금한다. 이후 모든 월요일에 이전 월요일보다 $1 더 입금한다.

n이 주어졌을 때, n번째 날이 끝나고 Leetcode 은행에 있는 금액을 반환해라.

Example

#1
Input: n = 4
Output: 10
Explanation: 4번째 날 이후, 총 1 + 2 + 3 + 4 = 10이다.

#2
Input: n = 10
Output: 37
Explanation: 10번째 날 이후, 총 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4) = 37이다.

#3
Input: n = 20
Output: 96
Explanation: 20번째 날 이후, 총 (1 + 2 + 3 + 4 + 5 + 6 + 7) + (2 + 3 + 4 + 5 + 6 + 7 + 8) + (3 + 4 + 5 + 6 + 7 + 8) = 96이다.

Constraints

  • 1 <= n <= 1000

Solved

class Solution {
    public int totalMoney(int n) {
        int weeks = n / 7;
        int days = n % 7;
        int total = ((weeks * (weeks - 1)) / 2) * 7;
        total += weeks * 28;
        total += ((days * (days + 1)) / 2) + (weeks * days);

        return total;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글