난이도: Lv.2
문제: https://school.programmers.co.kr/learn/courses/30/lessons/12909
알고리즘
결과가 true이려면 두가지 조건이 필요하다.
1. 문자열을 순회하는 중에 닫는 괄호의 개수가 여는 괄호의 개수보다 많으면 안된다.
2. 문자열을 끝까지 순회했을 때 여는 괄호의 개수와 닫는 괄호의 개수가 동일해야 한다.
코드
function solution(s) {
let count = 0;
for (let str of s) {
str === '(' ? count++ : count--;
if (count < 0) { return false; }
}
if (count !== 0) { return false; }
return true;
}
주저리
처음에는 문자열을 인덱싱하고, 여는 괄호와 닫는 괄호 개수를 따로 카운팅해서 풀었는데 효율성 테스트에서 실패했다. 푸는 논리는 똑같은데 왜 이거는 효율성 박살난건지 사실 잘 모르겠고, 문제 유형이 스택/큐 이긴 했는데 이게 스택이 맞는지도 모르겠고, 그냥 머 모르겠다..............
'코딩테스트' 카테고리의 다른 글
[JS] 짝지어 제거하기 (0) | 2023.11.15 |
---|---|
[JS] 피보나치 수 (0) | 2023.11.13 |
[JS] 다음 큰 숫자 (0) | 2023.11.13 |
[JS] 숫자의 표현 (1) | 2023.11.10 |
[JS] 이진 변환 반복하기 (0) | 2023.11.10 |