📌 문제
📌 풀이
function solution(a, d, included) {
var answer = 0;
let addedDataList = [];
let trueDataIndexList = [];
let finalDataList = [];
// 1. included 의 length 만큼 더한 등차수열을 List 에 넣는다.
for (let i = 0; i < included.length; i++) {
addedDataList.push(a + (d * i));
}
// 2. included 에서 true 인 값의 index 를 List 에 넣는다.
included.map((ele, idx) => {
if (ele) {
trueDataIndexList.push(idx)
}
})
// 3. 1번의 List 에서 2번의 List 의 값(=index) 을 새로운 List 에 넣는다.
trueDataIndexList.map((ele) => finalDataList.push(temp[ele]))
// 4. 새로운 List 의 값들을 모두 더한 값을 answer 에 할당한다.
answer = finalDataList.reduce((acc, curr) => acc + curr)
return answer;
}
- 함수를 작성하면서도 쓸데없는 변수 선언, 복잡한 반복문, 해석하기 어려운 코드 등이라고 느꼈다..
다른 풀이
function solution(a, d, included) {
return included.reduce((acc, curr, i) => {
return curr ? acc + a + d * i : acc
}, 0)
}
reduce()
: reduce 를 활용해 현재(curr) 값이 true 이면 초기값(0) 에 a + d * i 를 더하고, false 이면 누적된 값(acc) 을 return 하는 식으로 동작한다.
다른 분들의 풀이를 보고 아직 많이 부족한 실력이라는 것을 또 다시 느꼈다..
reduce 를 활용하긴 했지만, 제대로 된 개념을 모르고 있었던 것 같다.. 언제쯤 잘 활용할 수 있을까😭
해당 풀이에 공감되는 댓글이 있어 첨부하고 이 게시글을 마무리 하겠다..
728x90
'배움 기록 > 코테 연습' 카테고리의 다른 글
[프로그래머스] 수 조작하기 2 : JavaScript (0) | 2024.11.03 |
---|---|
[프로그래머스] 이어 붙인 수 : JavaScript (0) | 2024.07.09 |
[프로그래머스] 더 크게 합치기 : JavaScript (0) | 2024.03.31 |
[프로그래머스] 문자열 겹쳐쓰기 : JavaScript (0) | 2023.11.07 |
[프로그래머스] 대소문자 바꿔서 출력하기 : JavaScript (0) | 2023.11.07 |
댓글