문제출처


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



signs와 absolutes는 길이가 같으며, 순서대로 들어가 있기 때문에 absolutes의 길이만큼 반복하며
음수(signs[i]의 값이 false)일경우 -1을 곱해서 음수로 만들어 더해주고,
양수(signs[i]의 값이 true)일 경우에는 그대로 더해주었다.

여기서 삼항 연산자를 사용할 경우



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

        return answer;
    }
}


코드는 더 간결해 지지만 개인적으로는 if문을 더 좋아해서 if문으로 사용하였다.