Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 유니티 합치기
- m590 수리
- 깃허브 데스크탑 병합
- 깃허브 데스크탑 합치기
- githubdesktopmerge
- networkobject
- 몬스터
- Unity
- 오브젝트 깜빡임
- m585 수리
- 유니티 브랜치 merge
- nav거리
- NavMesh
- 유니티
- unity git
- unity merge
- nav오브젝트사이거리
- 유니티 해상도 설정
- unity 병합
- 유니티 해상도 변경
- Github DeskTop Merge
- networkobject.networkid
- 유니티 해상도
- M590
- navigation
- stateauthority
- networkbehaviourid
- m585
- 유니티 머지
Archives
- Today
- Total
집게사장의 꿈
백준 C# 28278 스택 2 본문
구현하라길래 스택을 만들었는데 시간 초과
using System;
using System.Linq;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
int iter = int.Parse(Console.ReadLine());
Stack stack = new Stack(iter);
for (int i = 0; i < iter; i++)
{
//명령 받기
int[] numbers = Console.ReadLine().Trim().Split().Select(x => int.Parse(x)).ToArray();
switch (numbers[0])
{
case 1://스택에 넣기
stack.Push(numbers[1]);
break;
case 2://pop
Console.WriteLine(stack.Pop());
break;
case 3://정수의 개수 출력
Console.WriteLine(stack.Count);
break;
case 4://empty
Console.WriteLine(stack.IsEmpty);
break;
case 5://peek
Console.WriteLine(stack.Peek());
break;
}
}
}
}
public class Stack
{
public Stack(int index) => array = new int[index];
int[] array;
int _currentIndex = -1;
public int Count=>_currentIndex +1;
public int IsEmpty => _currentIndex > 0 ? 0 : 1;
public void Push(int x)
{
if (_currentIndex >= array.Length-1) return;
array[++_currentIndex] = x;
}
public int Pop()
{
if (_currentIndex < 0) return -1;
int tmp = array[_currentIndex];
_currentIndex--;
return tmp;
}
//return 0 if arrray are not null
public int Peek()
{
if(_currentIndex > -1)
{
return array[_currentIndex];
}
else
{
return -1;
}
}
}
}
Console.WriteLine을 StringBilder로 통합해서 출력함
static void Main(string[] args)
{
Stack<int> stack = new Stack<int>();
int iter = int.Parse(Console.ReadLine());
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < iter; i++)
{
//명령 받기
int[] numbers = Console.ReadLine().Trim().Split().Select(x => int.Parse(x)).ToArray();
switch (numbers[0])
{
case 1://스택에 넣기
stack.Push(numbers[1]);
break;
case 2://pop
stringBuilder.Append($"{(stack.Count > 0 ? stack.Pop() : -1)}\n");
break;
case 3://정수의 개수 출력
stringBuilder.Append($"{(stack.Count)}\n");
break;
case 4://empty
stringBuilder.Append($"{(stack.Count < 1 ? 1 : 0)}\n");
break;
case 5://peek
stringBuilder.Append($"{(stack.Count > 0 ? stack.Peek() : -1)}\n");
break;
}
}
Console.WriteLine(stringBuilder.ToString());
}
'기타 > 백준' 카테고리의 다른 글
백준 C# 2475 검증수 (0) | 2024.07.04 |
---|---|
백준 C# 2231 분해합 (0) | 2024.07.04 |
백준 c# 4949 균형잡힌 세상 (0) | 2024.06.09 |
백준 C# 9012 괄호 (0) | 2024.06.09 |
백준 C# 10773 제로 (0) | 2024.06.06 |