어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
absolutes
|
signs
|
result
|
[4, 7, 12] | [ true, false, true ] |
9
|
[1, 2, 3]
|
[ false , false, true ]
|
0
|
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
if( 1 <= absolutes.length && absolutes.length <= 1000 && signs.length == absolutes.length) {
for( int i = 0; i < signs.length; i++ ) {
if( 1 > absolutes[i] || absolutes[i] > 1000 ){
return -1;
}
if( signs[i] ) {
answer += absolutes[i];
}
else {
answer -= absolutes[i];
}
}
}
return answer;
}
}
똑같이 좋아요 수가 가장 많은 다른 사람의 코드를 살펴보면
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for (int i=0; i<signs.length; i++)
answer += absolutes[i] * (signs[i]? 1: -1);
return answer;
}
}
아이디어 자체는 동일하였다.
다만 나는 풀어쓴 코드를 삼항연산자를 통하여 간추렸다.
조건 ? 참일 때의 값 : 거짓일 때의 값
삼항연산자는 기존에 문제풀이를 시작하기 전부터 약했던 부분이라
따로 정리를 해놨는데도 아직 실전에서는 생각나지 않는다.
그리고 answer 안에 다 더하되 숫자와 부호를 곱해줌으로써 더 간편한 코드가 되었다.
[Java] 가운데 글자 가져오기 (0) | 2025.01.24 |
---|---|
[Java] 없는 숫자 더하기 (1) | 2025.01.22 |
[Java] 나누어 떨어지는 숫자 배열 (3) | 2025.01.20 |
[Java] 서울에서 김서방 찾기 (1) | 2025.01.20 |
[Java] 두 정수 사이의 합 (3) | 2025.01.16 |