-
[백준 Node.js] 8393번 합 (1~n까지 합 구하기)To infinity/Coding Practice 2021. 6. 20. 11:09
2021.06.20
Question
Answer code
1. 공식을 이용
let fs = require('fs'); let input = (process.platform === 'linux' ? fs.readFileSync('/dev/stdin').toString() : `3`.split(' ')); let n = parseInt(input); console.log((n * (n+1))/2);
2. for문 이용
let sum = 0; for(i=0; i<=n; i++){ sum += i //sum = sum + i; } console.log(sum);
How to solve?
1. 수학공식으로 적으면 3!를 구하면 된다.
2. 해당 공식은 (n * (n+1))/2 이다. (이걸 기억하고 있다니.. 고등교육의 중요성)
하지만 왜 저런 공식이 나왔는지는 모른다. 찾아보니 해당 숫자를 그림으로 풀어서 냐열하면 삼각형 모양이 나오기에 삼각형의 넓이는 사각형의 넓이 / 2이기 때문인거다. 자세한 설명은 여기(알고리즘 1~n까지 합을 구하는 원리)를 참고하자.
3. 하지만 공식을 몰라도 for문으로 풀 수도 있다.
sum이라는 변수에 기본값 0을 할당해주고, i가 증가함에 따라 해당 값을 sum에 더하면서 넣어준다.
Reference
'To infinity > Coding Practice' 카테고리의 다른 글
[백준 Node.js] 10871번 X보다 작은 수 (새로운 문법 시도!) (0) 2021.06.21 [백준 Node.js] 11021번 A+B -7 (테스트케이스) (0) 2021.06.20 [백준 Node.js] 2741번 N 찍기 (0) 2021.06.20 [백준 Node.js] 15552번 빠른 A+B (0) 2021.06.20 [백준 Node.js] 10950번 A+B-3 (0) 2021.06.20