반응형
문제
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
의식의 흐름
그냥 단순 for 문 돌리는것 같아서 일단 짜봄
초기코드(정답)
function solution(a, b) {
var answer = 0;
for (let i = 0 ; i <= Math.abs(a-b); i++ ){
if(a > b){
answer = answer + (b+i)
} else if (b > a){
answer = answer + (a+i)
} else {
answer = a
}
}
return answer;
}
다른 사람 정답
방법1.
function adder(a, b){
var result = 0
//함수를 완성하세요
return (a+b)*(Math.abs(b-a)+1)/2;
}
평균합 = 양 끝의 합/2 * 양 끝의 합의 개수 (평균x갯수)
이런 수식들은 외워두고 써먹어보자.
평균합 참조 사이트 : 블로그
방법2.
function adder(a, b, s = 0){
for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
return s;
}
if else문 돌린 것보다 최소값 최대값 이용한게 더 좋아보인다.
참고 자료
배열일 경우 어떤 함수를 쓰는게 효율적인가 찾아보았다. // 참조 : 블로그
아래 함수들은 모두 각 배열의 요소마다 정해진 조건으로 실행을 하는 것이다.
모두 사본이 반환하여 원래 배열은 바뀌지 않는다.
- map: 새로운 함수를 만들고, 거기에 조건에 맞는 값들을 채워넣을때
- reduce : 누적 결과물을 쌓고, 최종적으로 하나의 값으로 만들고 싶을때
- forEach : loop랑 같다고 보면 됨
- filter : 조건에 걸려진 요소들만 새로운 배열에 추가됨
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] level1. 문자열 내림차순으로 배치하기(javascript) (0) | 2021.04.10 |
---|---|
[프로그래머스] level1. 폰켓몬 (javascript) (0) | 2021.04.10 |
[프로그래머스] level1. 같은 숫자는 싫어 (javascript) (0) | 2021.04.09 |
[프로그래머스] level1. 3진법 뒤집기 (javascript) (0) | 2021.04.08 |
[프로그래머스] level1. 체육복 ( javascript) (0) | 2021.04.08 |