프로그래머스[7] - 음양더하기

Seungmin Shin·2022년 1월 7일
1

필요조건

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

제한사항

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

입출력예시

absolutessignsresult
[4,7,12][true,false,true]9
[1,2,3][false,false,true]0

수도코드

1. 조건문을 활용한다.
2. signs의 상태에 따라서 absolutes의 상태또한 변화시키는 코드를 작성한다.
3. 바뀐 값들은 하나의 변수에 차례대로 계산을 해나간다.
4. 최종적으로 계산된 값을 리턴한다.

코드작성

function solution(absolutes, signs) {
    let result = 0;
    for (let i = 0; i < absolutes.length; i++) {
        if (signs[i] === true) {
            result = result + absolutes[i];
        } else {
            result = result - absolutes[i];
        }
    }
    return result
}

코드해석

일단 result라는 최종 값이 들어갈 변수를 만들어 놓고
여기에 바뀌는 absolutes의 값을 차례대로 더할것이다.
반복문이 필요한데, 그 범위는 absolutes전체를 훑을것이다.
그렇게 absolutes를 훑는데 조건을 하나 달아준다. signs의 인덱스의 상태에 따른 변화이다.
signs[i]가 true 냐 false 냐에 따라서 absolutes 가 바뀌기 때문,
true 일때는 absolutes의 인덱스를 더해주고, false일때는 빼준다. 간단하다.
이렇게 계속해서 계산을 해나가다가 최종적으로 계산된 result를 반환하면 끝이다.
profile
Frontend Developer

0개의 댓글