algorithm/codewars

[7kyu] Sum of Triangular Numbers

안준범 2018. 1. 21. 17:03

<문제  설명>

Description:

Your task is to return the sum of Triangular Numbers up-to-and-including the nth Triangular Number.

Triangular Number: "any of the series of numbers (1, 3, 6, 10, 15, etc.) obtained by continued summation of the natural numbers 1, 2, 3, 4, 5, etc."

[01]
02 [03]
04 05 [06]
07 08 09 [10]
11 12 13 14 [15]
16 17 18 19 20 [21]

e.g. If 4 is given: 1 + 3 + 6 + 10 = 20.

Triangular Numbers cannot be negative so return 0 if a negative number is given.




나의 풀이

 function sumTriangularNumbers(n) {

var start = 1; var result = 0; while(n > 0){ result += n * start; start++; n--; } return result; }





다른사람 풀이


 

function sumTriangularNumbers(n) {


return n < 0 ? 0 : n * (n + 1) * (n + 2) / 6; }




느낀점


삼각수를 만드는 원리를 코드로 만들었을뿐, 그에 따른 공식을 생각해보지 않았다.

공식으로 쉽게 풀 수 있음을 생각하자. 또한 컴퓨터에도 부담을 덜주는 길이라는 말을 들었다.