return count === 0; 은 왜 가능한가?괄호 짝 맞추기 문제를 풀다 보면,
마지막에 이런 코드가 자주 등장합니다 👇
return count === 0;
처음 보면 “어라? count가 0이면 true라고 설정한 적 없는데?”
이런 의문이 생기죠.
하지만 이 한 줄에는 자바스크립트의 비교 연산 원리가 숨어 있습니다.
=== 연산자의 본질자바스크립트에서 === 연산자는
두 값이 “값”과 “자료형”까지 완전히 같은지를 비교합니다.
즉,
count === 0
은
“count가 0과 완전히 같은가?”를 묻는 질문이에요.
이 질문의 결과 자체가 true 또는 false(Boolean) 로 나옵니다.
let count = 0;
console.log(count === 0); // true (값이 같다)
count = 1;
console.log(count === 0); // false (값이 다르다)
즉, ===은 비교 후 Boolean 값을 반환합니다.
그래서 return count === 0; 은
“count가 0이면 true, 아니면 false를 반환하라”
라는 의미가 됩니다.
if 문으로 풀어서 쓰면?다음 두 코드는 완전히 동일하게 동작합니다 👇
if (count === 0) {
return true;
} else {
return false;
}
return count === 0;
자바스크립트는 === 연산 결과가 이미 Boolean(true/false)이기 때문에
굳이 if문으로 감싸서 “true / false를 다시 반환”할 필요가 없습니다.
| count 값 | count === 0 | 반환값 |
|---|---|---|
| 0 | true | ✅ 올바른 괄호 |
| 1 | false | ❌ 닫히지 않은 괄호 |
| -1 | false | ❌ 닫는 괄호가 너무 많음 |
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
=== | 값과 자료형이 모두 같은가 | 3 === 3 | true |
!== | 값과 자료형이 모두 다른가 | 3 !== "3" | true |
> | 왼쪽이 더 큰가 | 5 > 2 | true |
< | 왼쪽이 더 작은가 | 2 < 5 | true |
>= | 왼쪽이 크거나 같은가 | 5 >= 5 | true |
<= | 왼쪽이 작거나 같은가 | 3 <= 2 | false |
모든 비교 연산자는 결국 true / false 값을 반환합니다.
그래서 if 없이도 그대로 return이 가능합니다 ✅
function solution(s) {
let count = 0;
for (let i = 0; i < s.length; i++) {
if (s[i] === "(") {
count += 1;
} else {
count -= 1;
}
if (count < 0) return false;
}
// count가 0이면 true, 아니면 false
return count === 0;
}
count가 0이면 올바른 괄호count === 0의 결과는 true 또는 falsereturn count === 0; 이면 바로 Boolean 값을 반환| 구분 | 설명 |
|---|---|
=== | 비교 결과로 Boolean을 반환 |
return count === 0; | “count가 0이면 true, 아니면 false 반환” |
| 장점 | 코드가 짧고 명확함 |
| 같은 의미의 긴 코드 | if (count === 0) return true; else return false; |
return count === 0;
는 “count가 0이면 true, 아니면 false”를 비교 연산자 자체로 표현한 축약형 문장이다.
자바스크립트에서 비교 연산은 항상 Boolean을 반환하기 때문에 가능한 문법이다.