프로그래머스 음양 더하기
문제
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
제한사항
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
입출력 예
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
풀이
public class SumAbsolute {
public static void main(String[] args) {
SumAbsolute sumAbsolute = new SumAbsolute();
int[] absolutes = {1,2,3};
boolean[] signs = {false,false,true};
int solution = sumAbsolute.solution(absolutes, signs);
System.out.println("solution = " + solution);
}
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i=0; i<absolutes.length; i++){
int su = absolutes[i];
if(!signs[i]){
su = su*-1;
}
answer += su;
}
return answer;
}
}
public class SumAbsolute {
public static void main(String[] args) {
SumAbsolute sumAbsolute = new SumAbsolute();
int[] absolutes = {1,2,3};
boolean[] signs = {false,false,true};
int solution = sumAbsolute.solution(absolutes, signs);
System.out.println("solution = " + solution);
}
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i=0; i<absolutes.length; i++){
int su = absolutes[i];
if(!signs[i]){
su = su*-1;
}
answer += su;
}
return answer;
}
}
너무 쉬운 문제라 금방 풀었는데... 생각해보면 lamda를 사용했으면 더 간결하고 가독성도 좋은 코드였을텐데... 너무 아쉽다.
풀이 2
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i=0; i<absolutes.length; i++){
answer += signs[i]? absolutes[i] : absolutes[i] * -1;
}
return answer;
}
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i=0; i<absolutes.length; i++){
answer += signs[i]? absolutes[i] : absolutes[i] * -1;
}
return answer;
}
solution 부분만 교체해서 사용하면 이렇게 적을 수 있다. 훨씬 더 짧고 가독성도 좋은 코드로 나왔다!
람다식을 기억하자
Author And Source
이 문제에 관하여(프로그래머스 음양 더하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ililil9482/프로그래머스-음양-더하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)