-
올바른 괄호Coding Test/Programmers Level 2 2022. 3. 27. 00:58
문제
https://programmers.co.kr/learn/courses/30/lessons/12909
코딩테스트 연습 - 올바른 괄호
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은
programmers.co.kr
코드
function solution(s){ var count = 0; for(var char of s){ if(char === '(') { count += 1; } else { if (count === 0) return false; count -= 1; } } return count === 0; }
설명
위의 코드는 count 변수를 선언해서 풀었지만, 이 문제는 스택을 활용하여 풀 수 있는 문제이다.
count 를 하나의 빈 배열이라고 생각하고 '(' 가 나오면 해당 문자열을 배열에 넣어주었다가
')' 가 나오면 이미 들어가 있던 '(' 를 pop 하는 식으로 풀이했다.
여기서 한 가지 신경 써야하는 점은 스택의 첫 번째 요소로 ')' 가 들어오면 어차피 올바르지 않은 문자열이 되기 때문에
스택의 length 가 0 일 때, 즉 count 의 값이 0 일 때 바로 false 를 리턴해주어야 한다는 것이다.
'Coding Test > Programmers Level 2' 카테고리의 다른 글
기능개발 (0) 2022.03.29 프린터 (0) 2022.03.27