코딩하루루
<코딩테스트 연습JS >Lv.1 연습문제>두 정수 사이의 합 본문
문제>>
풀이과정 >>
// 1) a 와 b 사이의 속한 정수의 합 리턴
// 2) a 와 b 가 같다면 둘중 하나 리턴
// 3-1) a 와 b가 같다면 , a 리턴
// 3-2) a 가 b 보다 크면 , 사이 합
// 3-3) b 가 a 보다 크면, 사이 합
function solution(a, b) {
let result = 0;
if (a === b) {
result = a;
} else if (a < b) {
for (let i = a; i <= b; i++) {
result += i;
}
} else {
for (let i = b; i <= a; i++) {
result += i;
}
}
return result;
}
몇몇 문제가 실행시간과 메모리가.. 컸다.
다른사람 풀이로 공부해 보자
다른 사람의 풀이>>
function solution(a, b){
return (a+b) * (Math.abs(a-b)+1) / 2;
}
//등차수열의 합 공식을 사용하심
//(첫번째 항과 끝 항의 합) * (항의 갯수 /2)
//예를들어 a=6 b=12 라면 항의 갯수는 6, 7 ,8 ,9, 10, 11, 12 : 7개
// (Math.abs(a-b)+1) 둘값을 뺀후 더하기 1을 하면 사이항의 갯수가 나옴
// 6, 7 ,8 ,9, 10, 11, 12 <- 첫번째와 끝을 더하면 18이 나옴
//6+12 / 7+11/ 8+10 /9 <- (a+b 합 18) * (항개수 /2) <- 18 * 3.5 = 총합
'Algorithm' 카테고리의 다른 글
<코딩테스트 연습JS >Lv.1 연습문제>부족한 금액 계산하기 (0) | 2024.05.06 |
---|---|
<코딩테스트 연습JS >Lv.1 연습문제>내적 (0) | 2024.05.05 |
<코딩테스트 연습JS >Lv.1 연습문제>가운데 글자 가져오기 (0) | 2024.05.04 |
<코딩테스트 연습JS >Lv.1 연습문제>제일 작은 수 제거하기 (0) | 2024.05.03 |
<코딩테스트 연습JS >Lv.0 입문>팩토리얼 (0) | 2024.04.27 |