728x90
[Javascript] (프로그래머스 level 0) 연속된 수의 합
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
function solution(num, total) {
const result = new Array(num).fill().map((_, i) => i);
let subSum = result.reduce((acc, cur) => acc + cur);
let left = 0;
let right = num -1;
while(true) {
if (subSum === total) {
return result.map((x) => x + left);
} else if (subSum < total) {
subSum = subSum - left + right + 1;
left++;
right++;
} else {
subSum = subSum - right + left - 1;
left--;
right--;
}
}
}
다른 사람 풀이 참고한 풀이
function solution(num, total) {
let min = Math.ceil(total/num - Math.floor(num/2));
let max = Math.floor(total/num + Math.floor(num/2));
return new Array(max-min+1).fill(0).map((el,i)=>{return i+min;});
}
배운 점, 느낀 점
수학 문제는…. 저에게… 넘기 힘든… 벽이네요 ㅎㅎ
'Coding Test > JavaScript' 카테고리의 다른 글
[Javascript] (프로그래머스 level 2) 점프와 순간이동 (0) | 2022.11.21 |
---|---|
[Javascript] DFS 부분집합 만들기 (0) | 2022.11.08 |
[Javascript] (DFS) 깊이 우선 탐색 - 전위 순회, 중위 순회, 후위 순회 (0) | 2022.11.08 |
[Javascript] (재귀) 이진수 만들기 (1) | 2022.11.08 |
[Javascript] (프로그래머스 level 0) 특이한 정렬 (0) | 2022.10.24 |
[Javascript] (프로그래머스 level 0) 로그인 성공? (0) | 2022.10.20 |
[Javascript] (프로그래머스 level 0) 등수 매기기 (0) | 2022.10.20 |
[Javascript] (프로그래머스 level 0) 치킨 쿠폰 (0) | 2022.10.20 |
댓글