반응형
문제
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록solution 함수를 완성해주세요.
제한사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i]가 참이면 absolutes[i]의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
CODE
import java.util.*;
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i = 0; i < signs.length; i++) {
if(signs[i]) {
answer += absolutes[i];
} else {
String temp = "-" + absolutes[i];
answer += Integer.parseInt(temp);
}
}
return answer;
}
}
맨 처음에 '음 쉽다^^'라고 생각하면서 별 생각없이 코드를 작성했기 때문일까...? 아니면 지금이 새벽 1시가 그런걸까..... 왜 굳이 signs이 false일 때 String 타입으로 변환, 그걸 또 int로 변환.. 왜 이런걸까? 그냥 간단하게 -1을 곱해주면 되는 문제인데... 혹시 해피해킹을 사서 조금이라도 더 타이핑하길 원해서였을까...? 알수없다. 진짜 쉬운 문제라도 최선을 다해 풀어야할 것 같다.
반응형
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i = 0; i < signs.length; i++) {
answer += signs[i] ? absolutes[i] : absolutes[i] * -1;
}
return answer;
}
}
정상적인 코드 투척......... 부끄럽다.
실행결과
반응형