본문 바로가기
코딩 테스트/[JAVA] programmers 코딩 테스트 연습

[No.4] 음양 더하기 / 프로그래머스 코딩 테스트 연습

by M개발자 2021. 6. 2.
반응형

음양 더하기


문제 설명


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


예시

 

absolutes signs result
[4, 7, 12] [true, false, true] 9
[1, 2, 3] [false, false, true] 0

코드 해석 및 전체 코드

 

absolutes 배열은 숫자의 절대값이 들어있고, signs 배열은 absolutes 원소의 부호가 들어있다. 

 

signs 원소가 true이면 양수, false이면 음수이다.

 

for문을 absolutes.length만큼 반복하여 answer에 signs[i] == false가 true이면 ? 뒤의 : 중 전자의 값(-absolutes[i])을 더하고 false이면 후자의 값(absolutes[i])을 더한다.

 

false일 경우 음수인건데, 값을 음수로 바꾸기 위해선 변수앞에 - 부호를 붙이면 된다. 

 

  0 1 2
absolutes[i] 4 7 12
signs[i] true false true
answer +4 -7 +12

answer의 총 값은 9이다. 

 

class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 0;
       
        for(int i = 0; i < absolutes.length; i++){
            answer += (signs[i] == false) ? -absolutes[i] : absolutes[i];
        }
        
        /*
         for(int i = 0; i < absolutes.length; i++){
            if(signs[i] == false) absolutes[i] = -absolutes[i];
             answer += absolutes[i];
        }
        */
        return answer;
    }
}

github

programmers

반응형

댓글