728x90
문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
제한 사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
문제 풀이 방법
- reduce() 메서드 내부에 if else 문을 이용해 signs[index] 를 확인하고 덧샘 뺄샘을 했다.
- 그러나.... 언제나 그렇듯 더 좋은 코드를 보고 아직 부족하다는 것을 느꼈다...
- reduce() 메서드 내부에서 삼항 연산자를 통해 계산할 수 있었다...
코드
function solution(absolutes, signs) {
return absolutes.reduce((i, a, index) => {
if(signs[index]){
return i + a;
}
return i - a;
}, 0)
}
다른 사람이 작성한 코드
function solution(absolutes, signs) {
return absolutes.reduce((i, a, index) => {
return i += signs[index] ? a : a * (-1);
}, 0)
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
1Level / 월간 코드 챌린지 시즌1 / 두 개 뽑아서 더하기 (0) | 2022.07.07 |
---|---|
1Level / 월간 코드 챌린지 시즌1 / 3진법 뒤집기 (0) | 2022.07.06 |
1 Level / 월간 코드 챌린지 시즌 1 / 내적 (0) | 2022.07.04 |
1 Level / 주간 코드 챌린지 / 최소 직사각형 (0) | 2022.07.01 |
이분탐색 / 3 / 입국심사 (0) | 2022.06.24 |