rowSumOdd.js (7kyu 24)

Codewars 알고리즘 풀이


Problem

  • Given the triangle of consecutive odd numbers:
    • 연속적인 홀수의 삼각형은 다음과 같다.
             1
          3     5
       7     9    11
   13    15    17    19
21    23    25    27    29
...
  • Calculate the row sums of this triangle from the row index.
    • 해당 row의 합을 계산한다.


Solution 01

function rowSumOdd(n) {
  let start = n * (n - 1) + 1;
  let sum = 0;
  
  for (let i = 0; i < n; i++) {
    sum += start + (i * 2);
  }
  return sum;
}

rowSumOdd(1);	// 1
rowSumOdd(2);	// 8
rowSumOdd(3);	// 27
rowSumOdd(42);	// 74088


Solution 02

function rowSumOdd(n) {
  let start = n * n - n + 1;
  let sum = 0;
  
  for (let i = 0; i < n; i++) {
    sum += start + (i * 2);
  }
  return sum;
}

rowSumOdd(1);	// 1
rowSumOdd(2);	// 8
rowSumOdd(3);	// 27
rowSumOdd(42);	// 74088


Solution 03

function rowSumOdd(n) {
  return n * n * n;
}

rowSumOdd(1);	// 1
rowSumOdd(2);	// 8
rowSumOdd(3);	// 27
rowSumOdd(42);	// 74088


Solution 04

function rowSumOdd(n) {
  return Math.pow(n, 3);
}

rowSumOdd(1);	// 1
rowSumOdd(2);	// 8
rowSumOdd(3);	// 27
rowSumOdd(42);	// 74088

Math.pow(x, y): x의 값을 y의 거듭제곱(x^y)으로 반환한다.