상세 컨텐츠

본문 제목

[Level2.] 올바른 괄호 C++

C++/Programmers

by J2on 2023. 7. 11. 22:26

본문

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

 

자.. 괄호가 열리가 닫히는데는 순서가 있습니다.

 

괄호는 무조건 열린 후에 닫혀야 하죠.

 

괄호가 열리지 않았는데 닫히는 경우가 생기면 안됩니다.

 

이를 판단하기 위해 openNum이라는 변수를 사용합니다.

openNum 변수

판단하는 중에는 openNum이 음수가 되어서는 안되며,

 

판단이 끝난 후에 openNum이 0이 되어야 valid 하다고 판단할 수 있습니다. 

#include<string>
#include <iostream>

using namespace std;

bool solution(string s)
{
    bool answer = true;
    
    int openNum = 0;
    // openNum 변수는 음수가 되면... 열린 괄호 < 닫힌 괄호 라는 뜻
    for(int i=0; i< s.size(); i++){
        if(s[i] == '('){
            openNum++;
        }
        else{
            openNum--;
        }
        
        if(isValid < 0){
            return false;
        }
    }
    
    if(openNum == 0){
        answer = true;
    }
    else{
        answer = false;
    }
    
    return answer;
}

 

간단하죠?

 

https://github.com/J2on/Programmers_Study/blob/main/Level2./%EC%98%AC%EB%B0%94%EB%A5%B8%EA%B4%84%ED%98%B8.cpp

 

'C++ > Programmers' 카테고리의 다른 글

[Level2.] 구명보트 C++  (0) 2024.02.04
[Level1.] 개인정보 수집 유효기간 C++  (0) 2024.02.03
[Level2.] 주식가격 C++  (0) 2023.07.12
[Level2.] 기능개발 C++  (0) 2023.07.11
[Level1.] 같은 숫자는 싫어 C++  (0) 2023.07.11

관련글 더보기

댓글 영역