C# 1874번 스택 수열
2022. 2. 15. 23:09ㆍ코딩테스트 문제 풀이/[백준] 스택
728x90
반응형
코드 :
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace _5
{
internal class Program
{
static void Main(string[] args)
{
int N = Convert.ToInt32(Console.ReadLine());
Stack<int> stack = new Stack<int>();
StringBuilder sb = new StringBuilder();
//N = 8 이면 1부터 8을 차례로 넣을 정수 변수
int pushCount = 1;
//N = 8 이면 결과적으로 8개 Pop해야 하는데
//N개만큼 잘 Pop했는지 확인하는 수
int popCount = 0;
//동작
for (int i = 1; i <= N; i++)
{
int num = Convert.ToInt32(Console.ReadLine());
while(num >= pushCount)
{
sb.AppendLine("+");
stack.Push(pushCount);
pushCount++;
}
//Pop하고 싶은 수가 가장 Top에 있어야만
//Pop할 수 있다는 특징을 이용한 것
if (num == stack.Peek())
{
stack.Pop();
sb.AppendLine("-");
popCount++;
}
}
//출력
if (popCount == N)
Console.WriteLine(sb);
else
Console.WriteLine("NO");
}
}
}
풀이 :
한줄한줄 들어오는 값을 num에 저장하고 num까지 계속 스택에 넣어준다. 이때 '+'를 출력한다. 이 후 num과 같아지면 pop하고 '-'를 출력한다.
728x90
반응형
'코딩테스트 문제 풀이 > [백준] 스택' 카테고리의 다른 글
C# 17298번 오큰수 (0) | 2022.02.15 |
---|---|
C# 4949번 균형잡힌 세상 (0) | 2022.02.15 |
C# 9012번 괄호 (0) | 2022.02.09 |
C# 10773번 제로 (0) | 2022.02.09 |
C# 10828번 스택 (0) | 2022.02.09 |