728x90
문제 링크 : https://www.acmicpc.net/problem/4949
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 실버 4 문제 입니다.
문제명 : 균형잡힌 세상
내 코드
while (true)
{
string input = Console.ReadLine();
if (input == ".") break; // 입력 종료 조건
Stack<char> stack = new Stack<char>();
bool isBalanced = true;
foreach (char c in input)
{
if (c == '(' || c == '[')
{
stack.Push(c); // 여는 괄호를 스택에 추가
}
else if (c == ')')
{
if (stack.Count == 0 || stack.Pop() != '(')
{
isBalanced = false; // 짝이 맞지 않으면 불균형
break;
}
}
else if (c == ']')
{
if (stack.Count == 0 || stack.Pop() != '[')
{
isBalanced = false; // 짝이 맞지 않으면 불균형
break;
}
}
}
// 스택이 비어있다면 모든 괄호가 짝을 이룸
if (isBalanced && stack.Count == 0)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
}
문제 풀이 해석 내용
입력처리
while (true)
{
string input = Console.ReadLine();
if (input == ".") break; // 입력 종료 조건
스택 초기화
Stack<char> stack = new Stack<char>();
bool isBalanced = true;
괄호 처리
foreach (char c in input)
{
if (c == '(' || c == '[')
{
stack.Push(c); // 여는 괄호를 스택에 추가
}
else if (c == ')')
{
if (stack.Count == 0 || stack.Pop() != '(')
{
isBalanced = false; // 짝이 맞지 않으면 불균형
break;
}
}
else if (c == ']')
{
if (stack.Count == 0 || stack.Pop() != '[')
{
isBalanced = false; // 짝이 맞지 않으면 불균형
break;
}
}
}
결과 출력
if (isBalanced && stack.Count == 0)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
실행 결과
728x90
'C#' 카테고리의 다른 글
백준 C# 10816 문제 풀이 (0) | 2024.12.19 |
---|---|
백준 C# 10773 문제 풀이 (0) | 2024.12.18 |
백준 C# 2164 문제 풀이 (0) | 2024.12.16 |
백준 C# 7568 문제 풀이 (0) | 2024.12.14 |
백준 C# 1436 문제 풀이 (0) | 2024.12.13 |