걸린 시간: 55분
결과: 정확성 테스트 모두 통과 / 효율성 테스트 모두 실패
function solution(n) {
let count = 1;
const nArray = [];
for(let i = 1; i <= n; i++) {
nArray.push(i);
}
while(nArray.length >= n / 2) {
const copied = [...nArray];
copied.reduce((prev, curr, i, arr) => {
if(prev >= n) {
copied.splice(i + 1)
if(prev === n) count++
}
return prev + curr
}, 0)
nArray.shift();
}
return count;
}
for문이 문제일까 while문이 문제일까 고민했는데 shift
랑 spread operator
가 문제였던 것 같다. shift
는 push
, pop
에 비해 성능이 안좋다는 건 알고 있었는데 spread operator
는 생각지도 못했네... 개선해서 다시 풀어봐야겠다.
이브는 재귀로 풀었다. 신기함... 카일도 뭔가 엄청 간단하게 풀음