괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다.
'(' 또는 ')' 로만 이루어진 문자열s가 주어졌을 때,
문자열s가 올바른 괄호이면true를return하고,
올바르지 않은 괄호이면false를return하는solution함수를 완성해 주세요.
public class BalancedParentheses
{
public static bool Solution(string s)
{
int parenthesesOpenCount = 0;
bool isOpen = false;
const char open = '(';
const char close = ')';
foreach (char c in s)
{
if (c == open)
{
parenthesesOpenCount++;
isOpen = true;
}
else if (c == close && isOpen)
{
parenthesesOpenCount--;
if(parenthesesOpenCount == 0)
isOpen = false;
}
else if (c == close && !isOpen)
return false;
}
return parenthesesOpenCount == 0;
}
}
parenthesesOpenCount 현재 열린 괄호의 개수를 확인isOpen 괄호에 들어간 상태인지 확인const char open = '(';
const char close = ')';
- 해당 문자가
(일 때 : 열린 괄호 개수를 추가하고isOpen을true로 변경- 해당 문자가
)이면서 괄호에 들어간 상태일 경우 : 열린 괄호의 개수를 하나 줄임
(하나의 괄호 세트가 완성된 것이므로) + 만약 열린 괄호의 개수가 더이상 없다면 모든 괄호가 닫힌 상태이므로isOpen을false로 변경- 해당 문자가
)이면서 열린 괄호가 없는 경우 : 올바르지 못한 경우이므로 즉시false를 반환