문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
Hercy는 첫 차를 사기위해 돈을 모으길 원한다. 매일 리트코드 은행에 돈을 입금한다.
첫 번째 날 월요일에 $1를 입금하는 것으로 시작한다. 화요일부터 일요일까지 매일 전날보다 $1씩 더 입금한다. 이후 모든 월요일에 이전 월요일보다 $1 더 입금한다.
n이 주어졌을 때, n번째 날이 끝나고 Leetcode 은행에 있는 금액을 반환해라.
#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이다.
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;
}
}