
😎풀이
- 초깃값을 기준으로
n번째 숫자까지 누적하는 값을 반환하는 헬퍼 함수 getNTimeSums 정의
- 두 수의 최대 공약수를 반환하는 헬퍼 함수
getGCD 정의
- 홀수 합과 짝수 합의 최대 공약수 반환
function gcdOfOddEvenSums(n: number): number {
const oddSum = getNTimeSums(1, n)
const evenSum = getNTimeSums(2, n)
return getGCD(evenSum, oddSum)
};
function getNTimeSums(num: number, n: number) {
let total = num
for(let i = 1, curr = num + 2; i < n; i++, curr += 2) {
total += curr
}
return total
}
function getGCD(a: number, b: number) {
if(a % b === 0) return b
return getGCD(b, a % b)
}