꾸준하게
[JS코딩테스트] 두 정수 사이의 합 본문
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12912
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[나의 풀이]
function solution(a, b) {
let arr = [a,b].sort((a,b) => a-b);
let answer = [];
for(i=arr[0]; i <= arr[1]; i++){
answer.push(i);
}
return answer.reduce((a,b) => a+b);
}
a, b를 포함해서 그 사이에 있는 정수를 모두 더한 값을 구해야 함.
for문으로 a와 b 중 작은 수부터 큰 수까지 i++로 돌리며 배열에 추가함.
그 배열의 요소를 reduce를 통해 모두 더함.
[다른 풀이]
function adder(a, b){
return (a+b) * (Math.abs(a-b)+1) / 2;
}
ex. a=3, b=5
(3+5) * (2+1) / 2 = 12
천재다...!!
댓글을 보니 가우스가 만든 '등차수열의 합' 공식이었다.
* Math.abs()
절대값 반환 (absolute)
728x90
반응형
'JS코딩테스트' 카테고리의 다른 글
[JS코테] 서울에서 김서방 찾기 (0) | 2023.04.21 |
---|---|
[JS코테] 콜라츠 추측 (0) | 2023.04.20 |
[JS코딩테스트] 나누어 떨어지는 숫자 배열 (0) | 2023.04.18 |
[JS코딩테스트] 핸드폰 번호 가리기 (0) | 2023.04.17 |
[JS코딩테스트] 음양 더하기 (0) | 2023.04.16 |