Dragonball Online Goku Hand
본문 바로가기
알고리즘 도장깨기

프로그래머스 Lv.1 "음양 더하기"

by 별의 코비 2022. 11. 28.
728x90

🔥 Programmers Lv.1 : 음양 더하기


🔍 문제 : " 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. "

📎 조건 :
∙ absolutes의 길이는 1 이상 1,000 이하입니다.
absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
∙ signs의 길이는 absolutes의 길이와 같습니다.
signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.


👉🏻 My answer

function solution(absolutes, signs) {
    let answer =0;
    for ( let i =0; i<absolutes.length; i++){
        signs[i] ? answer += absolutes[i] : answer += -absolutes[i]
    }
    return answer
}
01. 반복문을 absolutes나 signs 길이의 값은 동일하므로 둘 중 하나의 길이만큼 돌려줍니다.
02. signs의 i번째의 값이 참이라면, answer에 absolutes i번째 값들을 그냥 더해주고,
signs의 i번째의 값이 거짓이라면, answer에 absolutes i번째 값들을 -해서 더해주면 됩니다.


👉🏻 Another ways

function solution(absolutes, signs) {
    return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}

: 삼항연산자와 reduce메서드를 이용해서 간단하게 써주는 방법도 있습니다.

댓글