알고리즘/프로그래머스 2단계
프로그래머스 - 올바른 괄호 - C++
게임만드는학생
2024. 7. 28. 16:00
https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=cpp
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include<string>
#include <iostream>
using namespace std;
bool solution(string s)
{
bool answer = true;
int oN=0,cN=0;
for(int i=0;i<s.length();i++)
{
if(s[i]=='(')
{
oN++;
}
else
{
cN++;
if(oN<cN)
return false;
}
}
if(oN==cN)
return true;
else
return false;
}
괄호가 올바르게 돼있는지를 판별하는 문제이다.
짝이 안맞거나 ) 이게 ( 보다 먼저있거나 하면 올바르지 않은것이다.
따라서 ( , ) 을 각각 카운트하며 ( 의 개수보다 ) 의 개수가 많으면 올바르지 않은 것으로 판단하며 바로 for문을 중지한다.
또 ((()) 같은 경우는 짝이 맞지 않는 경우로 마지막에 두개의 수가 동일한지를 비교해서 리턴한다.