[코드조각] 1부터 n까지의 합 구하기
2019. 9. 26. 15:20ㆍ프론트엔드 개발/JS & TS
1부터 n까지 합을 구하는 스니펫을 여러가지 방법으로 짜봤습니다.
1. for문
for문을 이용한 가장 간단한 방식입니다. 시간복잡도는 O(n)입니다.
const sum=n=>{
let answer=0;
for(let i=1;i<=n;i++){
answer += i;
}
return answer;
}
2. 재귀함수
for문을 재귀함수 방식으로 변경했습니다. 시간복잡도는 동일하게 O(n)입니다.
const sum=n=> {
if(n===1) {return 1}
return n+sum(n-1);
}
3. 수학적인 방법 사용
중고등학교때 배웠던 가우스의 유명한 일화가 있습니다. 1+2+..+(n-1)+n를 빠르게 푸는 방법으로 ((1+n)*n)/2
를 활용하는 것입니다.
시간복잡도는 O(1)으로 세 가지 방법 중 가장 빠릅니다.
const sum=n=>{
return n*(n+1)/2;
}
이밖에 다른 방법을 알고 있거나 더 효율적인 코드를 아신다면 댓글로 달아주세요. 많은 분들에게 큰 도움이 될 거에요.
도움이 되셨다면 좋아요와 댓글 부탁드립니다. 감사합니다~
'프론트엔드 개발 > JS & TS' 카테고리의 다른 글
JS 기술면접 스터디 6주차: immutable 객체부터 이벤트 루프까지 (0) | 2019.12.30 |
---|---|
JS 기술면접 스터디 5주차: Math.max()부터 프로토타입 기반 상속까지 (0) | 2019.09.27 |
JS 기술면접 스터디 4주차: 전역스코프부터 Promise까지 (0) | 2019.07.31 |
Array.prototype.some() - 배열에 요소 존재여부를 판별하는 메소드 (0) | 2019.07.30 |
JS 기술면접 스터디 3주차: 호이스팅부터 이벤트 버블링까지 (0) | 2019.07.21 |