JS코딩테스트
[JS코딩테스트] 두 정수 사이의 합
DaeunCoding
2023. 4. 19. 22:02
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
반응형