Programmers
[프로그래머스][JS] 연속된 수의 합 ✅
winter17
2023. 7. 21. 11:07
https://school.programmers.co.kr/learn/courses/30/lessons/120923
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
function solution(num, total) {
// 중앙값을 구하고 : 연속된 정수들의 합은 평균값이니까
const mid = Math.floor(total / num)
// 중앙값과 배열의 길이를 가지고 for문의 범위를 구하여 배열을 완성하기
var answer = [];
for (let i = Math.round(mid - (num - 1) / 2); i < Math.floor(mid + (num + 2) / 2); i++){
answer.push(i)
}
return answer;
}
반복문 범위를 찾아내는 부분은 수학적 개념이 필요한 부분이라 모른다면 어려운 문제인데
Math.round(중앙값 - (배열의 길이 - 1) / 2) ~ Math.floor(중앙값 + (배열의 길이 + 1) / 2를 하면 원하는 범위의 값을 얻을 수 있다.
위의 과정이 이해가지 않으면 손으로 과정을 그려보기!
리뷰
이런 수학적 지식이 필요한 문제들이 너무 어렵다..!!