소요시간 : 10~15분
문제
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
[4,7,12] | [true,false,true] | 9 |
[1,2,3] | [false,false,true] |
ex)
absolutes = [4,7,12]
signs = [true,false,true]
result = 9
해석
absolutes 를 sign 불리언 값에 따라 변경해주고 해당 리스트룰 누산해주면 된다.
풀이
function solution(absolutes, signs) {
return absolutes.reduce((acc,cur,idx)=>{
cur = signs[idx] ? cur : -cur;
return acc + cur;
},0)
}
복기
문제 자체는 너무나 간단하다.
처음에는 아무생각없이 for문을 돌리고 새로운 list를 만든다음 reduce를 이용해 누산을 해줬는데
궂이 반복문을 두번 돌릴필요가 있나 싶어서 reduce로 한번에 값을 구하였다.
코딩테스트 문제를 몇개 풀어보니 생각나는대로 풀어보는게 중요한 것 같다.
그 다음에 개선을 하는 방식으로...해보자.
'생산성 > 코딩테스트' 카테고리의 다른 글
[프로그래머스: javascript] LV1(폰켓몬) (0) | 2022.05.08 |
---|---|
[프로그래머스: javascript] LV1(모의고사) (0) | 2022.05.07 |
[프로그래머스: javascript] LV1(완주하지 못한 선수) (0) | 2022.05.07 |
[프로그래머스: javascript] LV1(로또의 최고 순위와 최저 순위) (0) | 2022.05.05 |
코딩테스트[codility : javascript] (0) | 2022.03.09 |