📝 문제풀이/프로그래머스
[Level 1] 두 정수 사이의 합
NoHack
2022. 2. 27. 04:20
728x90
문제 설명
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
제한 조건
- a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
- a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
- a와 b의 대소관계는 정해져있지 않습니다.
문제 풀이
const solution = (a, b) => {
// 배열 생성
const array = Array.from({ length: Math.abs(a - b) + 1 }, (_, i) => (a < b ? a + i : a - i));
return array.reduce((a, b) => a + b);
};
const inputs = [
[3, 5],
[3, 3],
[5, 3],
];
inputs.forEach((input) => console.log(solution(...input)));
가장 먼저 두 수 사이의 값을 요소로 갖는 배열을 Array.from으로 생성합니다. 배열의 크기는 두 수를 포함해야 하므로, 두 수의 차에서 1을 더해 공간을 확보했습니다. 또한 a의 값이 b보다 큰 경우가 있을 수 있기 때문에, 이를 고려해 요소 저장 함수에서 삼항 연산을 사용했습니다. 배열을 올바르게 만든 후에는 reduce로 모든 값을 더해 반환하면 됩니다.