📌문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/12912
function solution(a, b) {
let result = 0;
if (a > b) {
for (let i = 0; i <= a - b; i++) {
result += b + i;
}
} else {
for (let i = 0; i <= b - a; i++) {
result += a + i;
}
}
return result;
}
// 조건을 걸어 a가 큰 경우, b가 큰 경우 각각 따로 설정한다.
// for 반복문을 사용해서 길이만큼 누적합을 하되
// b + i(i는 반복될때마다 1씩증가)를 누적합한다.
console.log(solution(5, 3));
function solution(a, b) {
let temp = 0;
let answer = 0;
if (a > b) {
temp = a;
a = b;
b = temp;
}
answer = ((a + b) * (b - a + 1)) / 2;
return answer;
}
// 우선 a가 b보다 더 클수도 있기 때문에
// 두 수를 비교하는 조건문을 설정해서 큰 수가 b로 가게 한다.
// 첫 수와 끝 수를 더하고
// 거기에 전체 길이를 곱한다.
// 이후 2로 나눈다.
console.log(solution(5, 3));
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
function solution(a, b) {
let temp = 0;
let answer = 0;
if (a > b) {
temp = a;
a = b;
b = temp;
}
answer = ((a + b) * (b - a + 1)) / 2;
return answer;
}
// 우선 a가 b보다 더 클수도 있기 때문에
// 두 수를 비교하는 조건문을 설정해서 큰 수가 b로 가게 한다.
// 첫 수와 끝 수를 더하고
// 거기에 전체 길이를 곱한다.
// 이후 2로 나눈다.
console.log(solution(5, 3));
console.log("hello");
</script>
</body>
</html>
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(a, b) {
let answer = ((a + b) * (Math.abs(b - a) + 1)) / 2;
return answer;
}
// 첫 수와 끝 수를 더하고
// 거기에 전체 길이를 곱한다.
// 이때 Math.abs(b-a)를 하면 절대값이므로
// 두 수의 순서와 크기가 상관이 없다.
// 이후 2로 나눈다.
console.log(solution(5, 3));
</script>
</body>
</html>
빅오을 이용한 알고리즘코드의 비교법
가우스 법칙을 이용하여 시간복잡도를 줄이기