프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 간단한 논리 연산(Java)

Sigfriede 2023. 5. 6. 01:10

  문제 설명

  boolean 변수 x1, x2, x3, x4가 매개변수로 주어질 때, 다음의 식의 true/false를 return 하는 solution 함수를 작성해 주세요.

  • (x1 ∪ x2) ∩ (x3 ∪ x4)

 

  입출력 예

x1 x2 x3 x4 result
false true true true true
true false false false false
class Solution {
    public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) {
        boolean answer = true;
        if ((x1 == true || x2 == true) && (x3 == true || x4 == true)) {
            answer = true;
        } else {
            answer = false;
        }
        return answer;
    }
}

  문제에서 설명하는 조건은 다음과 같습니다. x1과 x2 중 최소 하나는 true일 것, 동시에 x3과 x4 중 최소 하나는 true일 것입니다. 만약 이 조건을 벗어난다면 무조건 false입니다.

  이 블로그 글에서는 교집합과 합집합 기호로 표시했습니다. 그러나 프로그래머스 사이트에서는 각진 기호를 이용하고 있습니다. 그러나 동일한 기호를 못 찾았고, 동일한 의미로 추측되므로 양해바랍니다.

  코드는 앞서 설명한 것과 같습니다. 만약 x1 또는 x2가 true이고, 동시에 x3 또는 x4가 true라면 answer에 true를 할당합니다. 만약 조건을 충족하지 않는다면 answer에 false를 할당합니다. if문에서 조건을 작성하는 부분에서 true는 생략할 수 있는 기호입니다. 생략 시 다음과 같이 작성할 수 있습니다. while문에서도 조건이 true일 경우 생략할 수 있습니다. 만약 false를 생략하고 싶다면 '!' 기호로 false를 간략히 표현할 수 있습니다.

class Solution {
    public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) {
        boolean answer = true;
        if ((x1 || x2) && (x3 || x4)) {
            answer = true;
        } else {
            answer = false;
        }
        return answer;
    }
}