<Easy> Valid Parentheses (LeetCode : C#)

이도희·2023년 2월 25일
0

알고리즘 문제 풀이

목록 보기
16/185

https://leetcode.com/problems/valid-parentheses/

📕 문제 설명

괄호로 이루어진 문자열이 주어졌을 때 올바른 것인지 아닌지 반환

  • Input
    괄호 문자열
  • Output
    올바른 문자열인지에 대한 여부 (bool)

예제

풀이

  1. open 괄호 만나면 stack에 push
  2. close 괄호 만나면 다음을 확인
    2-1) stack이 비었다면 return false
    2-2) open 괄호가 짝이랑 맞지 않으면 return false
  3. 모든 괄호 다 확인 후 마지막에 stack이 빈 지 아닌지에 대한 여부 반환
public class Solution {
    public bool IsValid(string s) {
        Stack<char> stack = new Stack<char>();
        Dictionary<char, char> pairDict = new Dictionary<char, char>();
        pairDict.Add(')', '(');
        pairDict.Add('}', '{');
        pairDict.Add(']', '[');

        foreach(char p in s)
        {
            if (p == '(' || p == '{' || p == '[')
            {
                stack.Push(p);
            }
            else
            {
                if (stack.Count == 0) return false; 
                if (stack.Peek() != pairDict[p]) return false;
                stack.Pop();
            }
        }

        return (stack.Count == 0);
    }

}

결과

profile
하나씩 심어 나가는 개발 농장🥕 (블로그 이전중)

0개의 댓글