1일차 → 음양 더하기(삼항연산자, *-1)
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

1일차 → 음양 더하기(삼항연산자, *-1)

by 은돌1113 2021. 11. 8.

문제 설명

어떤 정수들이 있습니다. 이 정수들의 절대값을 차례대로 담은 정수 배열 absoultes와 이 정수들의 부호를 차례대로 담은 boolean 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하는 함수

 

제한사항

- absolutes의 길이는 1 이상 1,000 이하입니다.

- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.

- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.

 

내가 푼 문제 풀이

 

1. for문과 if문을 사용하여서 signs[i]가 true이면 양수이기 때문에 Math.abs를 사용하여 sum에 더해주고

signs[i]가 false이면 음수이기 때문에 absolutes[i]에 *-1을 해서 음수로 만들어서 sum에 더한다.

function solution(absolutes, signs) {

    let answer = 123456789;
    let sum = 0
    
    for(let i = 0; i<absolutes.length; i++){
     
      if(signs[i] == true){
        sum += absolutes[i]
        // absolutes[i]의 값을 양수 그대로 sum에 더한다.
      }else{ // signs == false
        sum += absolutes[i] * -1
        // -1을 곱해서 absolutes[i]의 값을 음수로 바꾼다.
        // 음수로 바뀐 값을 sum에 더한다.
        
        // sum -= absolutes[i]로 해도 됨
      }    
    }
    
    return answer=sum;
}

 

1. for문 안에 삼항연산자를 사용하여 signs[i]가 true이면 양수이기 때문에 참 결과값에 absolutes[i]를 넣어주고

false인 경우에는 음수이기 때문에 absolutes[i] * -1을 해서 음수로 만들어 준다.

2. 1번의 결과값을 check 변수에 담고 check 변수를 sum 변수에 담아준다.

function solution(absolutes, signs) {

    let answer = 123456789;
    let sum = 0
    
    for(let i = 0; i<absolutes.length; i++){
      let check = signs[i] == true ? absolutes[i] : absolutes[i] * -1  
      sum += check
    }
    
    return answer=sum;
}

 

https://programmers.co.kr/learn/courses/30/lessons/76501

 

코딩테스트 연습 - 음양 더하기

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

programmers.co.kr

 

댓글