코딩테스트 - 프로그래머스/Lv. 0

[20] JAVA flag에 따라 다른 값 반환하기

유혁스쿨 2023. 11. 15. 16:11
728x90
반응형

문제설명

두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.

 

제한사항

  • -1,000 <=a, b <= 1,000

입/출력 예

a b flag result
-4 7 true 3
-4 7 false -11

 

입/출력 예 #1

  • a 예제 1번에서 flag가 true이므로 a + b = (-4) + 7 = 3을 return 합니다.

입/출력 예 #2

  • a 예제 2번에서 flag가 false이므로 a - b = (-4) -7 = -11을 return 합니다.

[제출 답안]

class Solution {
    public int solution(int a, int b, boolean flag) {
        int answer = 0;
        if (a >= -1000 && a <= 1000 && b >= -1000 && b <= 1000) {
            answer = flag ? a + b: a - b;
        }
        return answer;
    }
}

 

[풀이과정] 

위와 같이 3항 연산자를 활용하였다.


[다른 풀이]

return a + (flag ? 1 : -1) * b;

 

연산 우선순위는

1. 괄호 2. 곱셈 3. 덧셈이다.

우선순위에 따라 flag값이 true이면 b는 양수 false이면 음수로 변경된다.

이후 덧셈을 계산하게 되면 flag값이 true이면 a+b / false이면 a+ (-b)가 된다.

대단한 상상력인것 같다.

728x90
반응형

'코딩테스트 - 프로그래머스 > Lv. 0' 카테고리의 다른 글

[22] JAVA 몫 구하기  (0) 2023.11.16
[21] JAVA 두 수의 차  (0) 2023.11.15
[19] JAVA 조건 문자열  (0) 2023.11.15
[18] JAVA 홀짝에 따라 다른 값 반환하기  (0) 2023.11.15
[17] JAVA 공배수  (0) 2023.11.15