기계는 거짓말하지 않는다

[Programmers] 올바른 괄호 본문

Programming Test

[Programmers] 올바른 괄호

KillinTime 2021. 5. 3. 17:20

프로그래머스 - 올바른 괄호 문제 입니다.

 

문제

괄호가 열리고 나면 무조건 닫혀야 올바른 괄호가 된다는 것만 숙지하면 됩니다.

열린 괄호를 하나씩 판별 하면서 개수를 더하다가 닫힌 괄호를 만나면 개수를 빼줍니다.

열린 괄호 개수가 음수가 되면 잘못 된 것이고, 판별이 끝났을 때 양수이면

열린 개수보다 닫힌 개수가 적은 경우입니다. (ex: ((()) )

판별이 끝난 후 개수가 0개이면 맞는 경우이므로 true를 리턴합니다.

 

#include <string>

using namespace std;

bool solution(string s)
{
    int open = 0;
    
    for(int i = 0; i < s.length(); i++) {
        if(s[i] == '(') open++;
        else {
            open--;
            if(open < 0) break;	// 열린 개수보다 닫힌 개수가 많음
        }
    }
    return open == 0 ? true : false;
}

'Programming Test' 카테고리의 다른 글

[Programmers] n진수 게임  (0) 2021.05.27
[Programmers] 더 맵게  (0) 2021.05.18
[Programmers] 등굣길  (0) 2021.05.02
[Programmers] 이진 변환 반복하기  (0) 2021.04.30
[Programmers] 캐시  (0) 2021.04.30
Comments