[Leetcode] 1716. Calculate Money in Leetcode Bank

RexiaN·2025년 10월 25일

맨 처음 월요일에는 1달러를 저축하고 그 뒤로는 하루가 지날 때 마다 1달러가 추가된 금액을 저금하며, 돌아오는 월요일은 지난주 월요일보다 1달러를 더한 금액을 저금할 때 얼마를 저금하는지 묻는 문제. 몫과 나머지 둘 다 등차수열의 합으로 나타낼 수 있다.

주어진 날짜를 7로 나눠서 몫과 나머지를 구한 뒤 초기값, 횟수, 증분을 구해 식에 넣으면 된다. 몫의 경우 초기값 28(1~7까지의 합), 횟수는 구한 몫, 증분은 7로 넣으면 된다. 나머지의 경우 초기값은 몫+1, 횟수는 나머지, 증분은 1 이다.

어렵지않게 통과할 수 있었다.

function totalMoney(n: number): number {
    const val = Math.floor(n / 7)
    const rest = n % 7

    const result1 = getArithmeticSequenceSum(28, val, 7)
    const result2 = getArithmeticSequenceSum(val + 1, rest, 1)

    return result1 + result2
};

function getArithmeticSequenceSum(a: number, n: number, d: number) {
    return (n * ( (2 * a) + (n - 1) * d)) / 2
}

profile
Don't forget Rule No.1

0개의 댓글