반응형
음양 더하기
문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 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;
}
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[No.6] 3진법 뒤집기/ 프로그래머스 코딩 테스트 연습 (0) | 2021.06.03 |
---|---|
[No.5] 약수의 개수와 덧셈 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.03 |
[No.3] 로또의 최고 순위와 최저 순위 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.02 |
[No.2] 소수 만들기 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.01 |
[No.1] 내적 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.01 |
댓글