반응형
[풀이]
function solution(absolutes, signs) {
let result = 0;
for (let i = 0; i < signs.length; i++) {
absolutes[i] = signs[i] ? absolutes[i] : -absolutes[i];
result += absolutes[i];
}
return result;
}
처음에는 absolute[i] 값을 받지 않고 삼항연산자만 작성했다.
계속 값이 받아지지 않았던 이유는 값 받을 곳을 만들지 않았기 때문이었다.
1. 결과값을 받을 변수를 설정한다.
2. for문을 돌려서 absolutes[i] 가 signs[i] === true 일 때 양수를, false일 때 - 를 붙여 음수로 만들어준다.
3. 결과값에 absolutes[i]를 누적해 더해 값을 리턴한다.
[코드리뷰]
function solution(absolutes, signs) {
let result = 0;
for (let i = 0; i < signs.length; i++) {
absolutes[i] *= signs[i] ? 1 : -1;
result += absolutes[i];
}
return result;
}
*= 를 사용해서 true일 때 는 1을, false일 때는 -1 을 곱해주면 더 깔끔하게 쓸 수 있다!
[추가리뷰]
1. reduce 이용하기
function solution(absolutes, signs) {
return absolutes.reduce((acc, cur, idx) => {
const sign = signs[idx] ? 1 : -1;
return (acc += cur * sign);
}, 0);
}
'코딩 테스트 > Programmers - 1' 카테고리의 다른 글
[JS] 짝수와 홀수 (0) | 2022.09.24 |
---|---|
[JS] 문자열 다루기 기본 (0) | 2022.09.24 |
[JS] 제일 작은수 제거하기 (0) | 2022.09.22 |
[JS] 핸드폰 번호 가리기 (1) | 2022.09.22 |
[JS] 콜라츠 추측 (0) | 2022.09.21 |