SMALL

https://www.acmicpc.net/problem/1874

 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net


  • 문제


  • 문제풀이

1부터 n까지 Push를 해주면서 "+\n"를 입력해주고 만약 스택을 체크했을 때 배열로 받아주었던 입력값과 같다면 Pop과 "-\n"를 입력해준다. 끝까지 진행을 했을 때 스택에 수가 남아있다면 NO를 입력해주고 아니라면 stringbuilder로 입력받은 문자를 출력해준다.


  • 코드 1
using System.Text;

namespace ConsoleApp7
{
    internal class Program
    {
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();
            Stack<int> stack = new Stack<int>();
            int count = 0;
            int N = int.Parse(Console.ReadLine());
            int[] input=new int[N];
            Queue<int> queue = new Queue<int>();
            for(int i=0;i<N;i++)
            {
                input[i]=int.Parse(Console.ReadLine());
                
                
            }
            for(int i = 1; i <= N; i++)
            {
                stack.Push(i);
                sb.Append("+\n");
                while (stack.Any() && stack.Peek() == input[count])
                {
                    stack.Pop();
                    sb.Append("-\n");
                    count++;
                }
            }
            if (stack.Any())
            {
                Console.WriteLine("NO");
            }
            else
            {
                Console.WriteLine(sb.ToString());
            }
        }
    }
}

  • 후기

힌트를 보고 그려보니 쉽게 풀 수 있었다

LIST

'백준 > C#' 카테고리의 다른 글

[C#]백준 1978번: 소수 찾기  (0) 2023.02.04
[C#]백준 13335번: 트럭  (4) 2023.02.02
[C#]백준 2493번: 탑  (0) 2023.02.01
[C#]백준 17827번: 달팽이 리스트  (0) 2023.01.28
[C#]백준 23253번: 자료구조는 정말 최고야  (0) 2023.01.28

+ Recent posts