위가 문제이고 아래가 나의 풀이
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
int sum = 0; // 합을 구할 변수
// 두 배열의 길이가 같기 때문에 absolutes 길이 만큼 해서 반복문 돌리기
// 조건문으로 signs 가 false 이면 -1 을 곱해서 음수로 만들어주고 양수는
// 그냥 그대로 넘긴다. 이후 sum 에다 대입 연산자로 총 합산을 구해주고 리턴
for (int i = 0; i < absolutes.length; i++) {
if (signs[i] == false) {
absolutes[i] = absolutes[i] * -1;
}
sum += absolutes[i];
}
answer = sum;
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;
}
}
위 처럼 삼항 연산자가 쓰이면 더 간단하게도 가능하다 !!!