코딩 테스트 연습/프로그래머스 level 1
[프로그래머스] lv1. 음양 더하기 (JS)
카누가 좋아요
2023. 7. 6. 17:53
❓ 문제
코딩테스트 연습 - 음양 더하기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡 해결하기
숫자의 부호를 알려주는 signs 배열의 요소들을 하나씩 돌면서 그것이 false일 경우에는 음수라는 의미이므로 absolutes 배열에서 그 요소의 인덱스에 해당하는 숫자를 음수로 만들어 준 후 누적하고, true일 경우는 양수라는 의미이므로 부호를 바꾸지 않고 그 요소의 인덱스에 해당하는 숫자를 그대로 누적하면 된다.
💻 JS로 코드 작성하기
function solution(absolutes, signs) {
let result = 0;
for (let i = 0; i < signs.length; i++) {
signs[i] ? (result += absolutes[i]) : (result += -absolutes[i]);
}
return result;
}
reduce를 사용한 다른 사람의 코드도 가져와 봤다.
function solution(absolutes, signs) {
return absolutes.reduce((acc, val, i) => acc + val * (signs[i] ? 1 : -1), 0);
}
이 코드는 absolutes 배열의 숫자들을 하나씩 돌면서 signs 배열에서 해당 인덱스의 값이 true인 경우 양수이므로 현재 숫자에 1을 곱하고, false인 경우 음수이므로 현재 숫자에 -1을 곱한 후 누적해나가는 코드이다.
for문을 사용하는 것보다 훨씬 더 간결하게 작성할 수 있다.