Machineboy空
백준 1874번: 스택 수열 - Stack pop(), push() 본문
//런타임 에러
//시간복잡도: n2^
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
namespace CodingTestForBaekJoon
{
class Program
{
static void Main(string[] args)
{
int N = int.Parse(Console.ReadLine());
List<int> A = new List<int>();
int[] origin = new int[N];
int[] madeStack = new int[N];
for (int i = 1; i <= N; i++)
{
origin[i-1] = i;
madeStack[i-1] = int.Parse(Console.ReadLine());
}
for (int i = 0; i <= N; i++)
{
Console.WriteLine("+");
for (int j = 0; j <= N; j++)
{
if (madeStack[i] == origin[j])
{
A.Add(origin[j]);
Console.WriteLine("-");
break;
}
}
}
}
}
}
N = int(input())
A = [0]*N
for i in range(N):
A[i] = int(input())
stack = []
num = 1
result = True
answer = ""
for i in range(N):
su = A[i]
if su >= num:
while su >= num:
stack.append(num)
num += 1
answer += "+\n"
stack.pop()
answer += "-\n"
else:
n = stack.pop()
if n > su:
print("NO")
result = False
break
else:
answer += "-\n"
if result:
print(answer)