◎ 문제
○ 출처
https://programmers.co.kr/learn/courses/30/lessons/12909
○ 문제 설명
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, |
○ 제한 사항
|
○ 입출력 예
○ 입출력 예 설명
입출력 예 #1,2,3,4 문제의 예시와 같습니다. |
○ 작성 예시 코드
using System;
public class Solution {
public bool solution(string s) {
bool answer = true;
return answer;
}
}
◎ 나의 문제 풀이
public class Solution
{
public bool solution(string s)
{
Stack<string> stack = new Stack<string>();
foreach(char word in s)
{
// '('일 경우 스택에 push
if(word == '(')
{
stack.Push(word.ToString());
continue;
}
// ')' 문자 면서 스택에 남아있는 요소가 없을 경우 false
if(stack.Count == 0)
{
return false;
}
// 스택에 남아있는 요소가 있다면 pop
stack.Pop();
}
// 스택에 남아있는게 없이 딱 맞아 떨어질 경우 true 반환
return stack.Count == 0;
}
}
- stack을 사용하지 않더라도 int형 count를 하나 선언해서 '('일 때 추가(count++)하고 ')'일 경우 차감(count--) 하는
방법을 사용해서도 풀이가 가능하다.
'프로그래밍 문제 풀이 > C#' 카테고리의 다른 글
[프로그래밍 문제 풀이] 프로그래머스 - JadenCase 문자열 만들기 (C#) (0) | 2020.07.22 |
---|---|
[프로그래밍 문제 풀이] 프로그래머스 - 최댓값과 최솟값 (C#) (0) | 2020.07.22 |
[프로그래밍 문제 풀이] 프로그래머스 - 예산 (C#) (0) | 2020.07.20 |
[프로그래밍 문제 풀이] 프로그래머스 - 문자열 내 마음대로 정렬하기 (C#) (0) | 2020.07.20 |
[프로그래밍 문제 풀이] 프로그래머스 - 직사각형 별찍기 (C#) (0) | 2020.07.20 |