개발Story

소요시간 : 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로 한번에 값을 구하였다.

 

코딩테스트 문제를 몇개 풀어보니 생각나는대로 풀어보는게 중요한 것 같다.

그 다음에 개선을 하는 방식으로...해보자.

 

 

profile

개발Story

@슬래기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!