기본 콘텐츠로 건너뛰기

코딩 테스트 - flag에 따라 다른 값 반환하기

package programmers;
import java.util.stream.IntStream;

class flag에_따라_다른_값_반환하기_230517 {
    public int solution(int a, int b, boolean flag) {
               return flag ? IntStream.of(a, b).sum() : IntStream.of(a, b).reduce((x, y) -> x - y).orElse(0);

    }
}

IntStream을 사용하여 a와 b를 스트림으로 만들고, sum() 메서드를 사용하여 두 수의 합을 구한다.
flag 값에 따라 삼항 연산자를 사용하여 합 또는 차를 계산한다.
reduce() 메서드를 사용하여 두 수의 차를 구하고, orElse() 메서드를 사용하여 기본값을 0으로 설정하고 최종 결과를 반환한다. 


그런데 사실
package programmers;
import java.util.stream.IntStream;

class flag에_따라_다른_값_반환하기_230517 {
    public int solution2(int a, int b, boolean flag){
        //이렇게 하면 되긴 합니다...
        return flag ? a + b : a - b;
    }
}

이렇게 하면 되긴 하다.


댓글