[BOJ][C#] 10799 쇠막대기

LimJaeJun·2023년 8월 16일
0

PS/BOJ

목록 보기
15/108

📕 문제

📌 링크

📗 접근 방식

입력값의 두번째 인덱스부터

  • (일 경우
    • 스택에 삽입
  • )일 경우
    • 스택에서 제거
    • 전 인덱스 값이 '('인 경우 레이저
      • 스택의 크기만큼 더해준다
    • 전 인덱스 값이 ')'인 경우 막대기
      • +1을 해준다

📘 코드

namespace BOJ
{
    class No_10799
    {
        static void Main()
        {
            using StreamReader input = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
            using StreamWriter output = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));

            string s = input.ReadLine();

            int answer = 0;
            Stack<char> st = new Stack<char>();

            st.Push(s[0]);

            for(int i=1 ;i<s.Length; i++)
            {
                if(s[i] == '(')
                    st.Push(s[i]);
                else
                {
                    st.Pop();

                    if(s[i-1] == '(')
                        answer += st.Count;
                    else
                        answer++;
                    
                }
            }

            output.Write(answer);
        }
    }
}

📙 오답노트

📒 알고리즘 분류

  • 자료 구조
  • 스택
profile
Dreams Come True

0개의 댓글

관련 채용 정보