본문 바로가기
코딩 테스트/[JS] programmers 코딩 테스트 연습

[Programmers/JS] 음양 더하기 / 프로그래머스 코딩 테스트 연습

by M개발자 2021. 6. 20.
반응형

음양 더하기

 


문제 설명

 

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.


예시

 

absolutes signs result
[4, 7, 12] [true, false, true] 9
[1, 2, 3] [false, false, true] 0

코드 해석 및 전체 코드

 

수도코드

1. reduce 이용

2. sign이 true이면  sum에 더하고, false이면 빼기 

 

reduce()

: 배열을 기반으로 값 하나를 도출할 때 사용한다.

 

absolutes → 순회할 배열

accumulator → 이전 함수 호출의 결과

i → absolutes index, 현재 배열 요소 // absolutes 배열의 요소

j → index, 요소의 위치 // signs 배열의 요소

0 → sum의 초깃값

 

absolutes 배열을 순회하면서 accumulator에 signs[j]가 true이면 absolutes[i]를 더하고, false이면 뺀다. 

 

function solution(absolutes, signs) {
    
    return absolutes.reduce((accumulator, i, j) => accumulator - (signs[j] ? -i : +i), 0);

}

github

programmers

반응형

댓글