코딩 테스트/[JAVA] programmers 코딩 테스트 연습
[No.4] 음양 더하기 / 프로그래머스 코딩 테스트 연습
M개발자
2021. 6. 2. 20:48
반응형
음양 더하기
문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 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;
}
}
반응형