반응형
SMALL
문제 풀이
using System;
using System.Collections.Generic;
namespace Study10
{
class App
{
//생성자
public App()
{
string[] arr = {
"(())())",
"(((()())()",
"(()())((()))",
"((()()(()))(((())))()",
"()()()()(()()())()",
"(()((())()("
};
//여기서부터 코드 작성
//여는 괄호가 무조건 있어야 한다.
//stack 안에 여는거 와 닫는걸 나눠서 넣은뒤 두개를 비교하여 지우는
Stack<char> stack0 = new Stack<char>();
Stack<char> stack1 = new Stack<char>();
for (int i = 0; i < arr.Length; i++) //arr배열 안에 있는 요소를 확인
{
if (arr[i][0] == '(') // arr배열의 요소를 하나하나 확인
{
for (int j = 0; j < arr.Length; i++) // arr의 요소가 '('인지 ')'인지 확인
{
if (arr[i][j] == '(') // '(' 라면 stack0에 넣어줌
{
stack0.Push(arr[i][j]);
}
else if (arr[i][j] == ')') // ')' 라면 stack1에 넣어줌
{
stack1.Push(arr[i][j]);
}
for (int k = 0; k < stack0.Count; k++)
{
if (stack0.Count > 0)
{
Stack<char> count = stack0.Pop();
}
}
}
}
//결과 출력
//NO
//NO
//YES
//NO
//YES
//NO
}
}
}
}
ex 배열을 사용하였지만 잘못된 풀이
using System;
namespace Study10
{
class App
{
int sum0 = 0;
int sum1 = 0;
//생성자
public App()
{
string[] ps0 = { "(", "(", ")", ")", "(", ")", ")" };
string[] ps1 = { "(,", "(", "(", ")", "(", ")", ")", "(", "(", "(", ")", ")", ")",};
//((()()(()))(((())))()
// ()()()()(()()())()
// (()((())()(
for (int i = 0; i < ps1.Length; i++)
{
if (ps1[i] == "(")
sum0++;
else if (ps1[i] == ")")
sum1++;
}
if (sum0 == sum1)
Console.WriteLine("YES");
else
Console.WriteLine("NO");
}
}
}
결과창
반응형
LIST
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 10173 니모를 찾아서 C# 이용 (0) | 2023.01.12 |
---|---|
[BOJ] 4458 첫 글자를 대문자로 C# 이용 (0) | 2023.01.12 |
[BOJ] 2711 오타맨 고창영 (0) | 2023.01.12 |
[BOJ] 9086 문자열 (0) | 2023.01.12 |
코딩 테스트 준비 예제 1 (0) | 2023.01.10 |