boolean 변수
x1
,x2
,x3
,x4
가 매개변수로 주어질 때, 다음의 식의 true/false를 return 하는 solution 함수를 작성해 주세요.(
x1
∨x2
) ∧ (x3
∨x4
)
∨과 ∧의 진리표는 다음과 같습니다.
x | y | x ∨ y | x ∧ y |
---|---|---|---|
T | T | T | T |
T | F | T | F |
F | T | T | F |
F | F | F | F |
const calc1 = (a, b) => {
if (a ==b && b == false) return false;
return true;
}
const calc2 = (c, d) => {
if (c == d && c == true) return true;
return false
}
function solution(x1, x2, x3, x4) {
return calc2(calc1(x1, x2), calc1(x3, x4));
}
진리표를 보면서 조건을 최소화한 후 계산 함수를 두 개 따로 만들었다.
∨ 가 들어간 연산의 경우 F가 나오는 단 하나의 경우의 수를 제외한 후 나머진 true 반환
∧ 가 들어간 연산의 경우 T가 나오는 단 하나의 경우의 수를 제외한 후 나머지는 false 반환
function solution(x1, x2, x3, x4) {
return (x1||x2) && (x3||x4)
}
엥 ㅡㅡ 머야 이렇게 풀 수 있네 ㅡㅡ
내가 쓴 조건을 다르게 풀이하면 ∨
의 경우 둘 중 하나만 참이면 참이 나오는 조건이다.
∧
의 경우 둘 중 하나만 거짓이어도 거짓이 나오는 조건이다.
aㅏ...
const solution = (x1, x2, x3, x4) => {
return (x1+x2)*(x3+x4) ? true : false;
}
놀라운 사실을 알았다! Boolean 값을 + 연산자로 계산할 수 있다.
Boolean 값의 + 연산
이처럼 Boolean 값을 + 연산자로 계산하면, true는 1로, false는 0으로 취급되어 산술 연산이 수행된다.
오... 이런 방식은 상상도 못했네욤... 신기하다!