fffo

문자열 - 올바른 괄호 본문

Programming/Algorithm

문자열 - 올바른 괄호

gggs 2021. 9. 24. 22:54

문제

문제 설명

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어

  • "()()" 또는 "(())()" 올바른 괄호입니다.
  • ")()(" 또는 "(()(" 올바르지 않은 괄호입니다.

'(' 또는 ')' 로만 이루어진 문자열 s 주어졌을 , 문자열 s 올바른 괄호이면 true return 하고, 올바르지 않은 괄호이면 false return 하는 solution 함수를 완성해 주세요.

제한사항

  • 문자열 s 길이 : 100,000 이하의 자연수
  • 문자열 s '(' 또는 ')' 로만 이루어져 있습니다.

입출력

s answer
"()()" true
"(())()" true
")()(" false
"(()(" false

입출력 설명

입출력 #1,2,3,4
문제의 예시와 같습니다.

 

접근 및 풀이

문자열 왼쪽부터 순차 탐색을 하면서 왼쪽 괄호가 오른쪽 괄호보다 많거나 크지 않으면 잘못된 괄호로 두고 해결

 

코드

function solution(s){
    var answer = true;
    let leftCount = 0;
    let rightCount = 0;
    s = s.split("");
    for (let i = 0; i < s.length; i++) {
        s[i] == '(' ? leftCount++ : rightCount++;
        if (leftCount < rightCount) return false;
    }
    if (leftCount != rightCount) return false;
    return answer;
}

출처

https://programmers.co.kr/learn/courses/30/lessons/12909

'Programming > Algorithm' 카테고리의 다른 글

그래프  (0) 2021.09.25
문자열 - 뉴스 클러스터링  (0) 2021.09.24
해시 테이블  (0) 2021.09.24
문자열 - 다음 큰 숫자  (0) 2021.09.23
스택/큐 - 다리를 지나는 트럭  (0) 2021.09.23
Comments