티스토리 뷰
사실 C#에는 스택이 이미 존재함... 정적 배열로 구현해봤다.
굳이 값을 0으로 초기화하지 않고 index값만 잘 조정해주면 된다.
받아들이는 문자열 비교는 String.CompareTo를 통해 비교하였다. 서로 같으면 0을 출력한다.
* CompareTo보다는 Equals를 쓰도록 하자!
string[] str;
string[] keyword = new string[] { "push", "pop", "size", "empty", "top" };
int[] stack = new int[10000];
int index = 0;
int num = int.Parse(Console.ReadLine());
for(int i = 0; i<num; i++)
{
str = Console.ReadLine().Split();
for(int x = 0; x<keyword.Length;x++)
{
if(str[0].CompareTo(keyword[x]) == 0)
{
switch (x)
{
case 0:
stack[index++] = int.Parse(str[1]);
break;
case 1:
if (index == 0)
Console.WriteLine("-1");
else
Console.WriteLine(stack[--index]);
break;
case 2:
Console.WriteLine(index);
break;
case 3:
if (index == 0)
Console.WriteLine("1");
else
Console.WriteLine("0");
break;
case 4:
if (index == 0)
Console.WriteLine("-1");
else
Console.WriteLine(stack[index - 1]);
break;
}
}
}
}
'■ 알고리즘 > ◻ 백준' 카테고리의 다른 글
[C#] 백준 10845번 : 큐 (0) | 2018.08.09 |
---|---|
[C#]백준 9012번 : 괄호 (0) | 2018.08.09 |
[C#]백준 10823번 : 더하기 2 (0) | 2018.08.09 |
[C#]백준 10820번 : 문자열 분석 (0) | 2018.08.09 |
[C#]백준 1152번 : 단어의 개수 (0) | 2018.08.07 |