반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 정렬
- 대구고깃집
- 수성못삼겹살
- 대구맛집
- 서울맛집
- 오라클
- 대구카페
- 수성못맛집
- 큐
- 백준
- 안지랑카페
- 별찍기
- 수성구맛집
- 조건문
- 브루트 포스
- 압구정데이트
- programmers
- BFS
- 대명동맛집
- 수성구데이트
- 반복문
- 범어동맛집
- 들안길삼겹살
- oracle
- C#
- 대구삼겹살
- 앞산카페
- SQL
- 대구데이트
- 프로그래머스
Archives
- Today
- Total
모든 일상
[C#/백준] 28279번 문제 - 덱 2 본문
728x90
반응형
문제
정수를 저장하는 덱을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
명령은 총 여덟 가지이다.
- 1 X: 정수 X를 덱의 앞에 넣는다. (1 ≤ X ≤ 100,000)
- 2 X: 정수 X를 덱의 뒤에 넣는다. (1 ≤ X ≤ 100,000)
- 3: 덱에 정수가 있다면 맨 앞의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.
- 4: 덱에 정수가 있다면 맨 뒤의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.
- 5: 덱에 들어있는 정수의 개수를 출력한다.
- 6: 덱이 비어있으면 1, 아니면 0을 출력한다.
- 7: 덱에 정수가 있다면 맨 앞의 정수를 출력한다. 없다면 -1을 대신 출력한다.
- 8: 덱에 정수가 있다면 맨 뒤의 정수를 출력한다. 없다면 -1을 대신 출력한다.
입력
첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000)
둘째 줄부터 N개 줄에 명령이 하나씩 주어진다.
출력을 요구하는 명령은 하나 이상 주어진다.
출력
출력을 요구하는 명령이 주어질 때마다 명령의 결과를 한 줄에 하나씩 출력한다.
예제 입력 및 출력
코드
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Eventing.Reader;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
LinkedList<int> l = new LinkedList<int>();
int cnt = int.Parse(Console.ReadLine());
for (int i = 0; i<cnt; i++)
{
int[] arr = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
string buff = "";
switch (arr[0])
{
case 1:
l.AddFirst(arr[1]);
break;
case 2:
l.AddLast(arr[1]);
break;
case 3:
sb.AppendLine(l.Count > 0 ? l.First.Value.ToString() : "-1");
if(l.Count > 0) l.RemoveFirst();
break;
case 4:
sb.AppendLine(l.Count > 0 ? l.Last.Value.ToString() : "-1");
if (l.Count > 0) l.RemoveLast();
break;
case 5:
sb.AppendLine(l.Count.ToString());
break;
case 6:
sb.AppendLine(l.Count == 0 ? "1" : "0");
break;
case 7:
sb.AppendLine(l.Count > 0 ? l.First.Value.ToString() : "-1");
break;
case 8:
sb.AppendLine(l.Count > 0 ? l.Last.Value.ToString() : "-1");
break;
}
}
Console.WriteLine(sb.ToString());
}
}
}
원래는 Queue와 Stack을 사용하여 구현을 했는데.... 시간초과로 자꾸 실패를 하더라구요 ㅠㅠㅠ
queue -> stack -> queue으로 기존의 queue안에 내용을 역정렬해서 앞, 뒤 데이터를 뽑아내려는게 제 의도였는데....
실패했습니다.... 이 방법으로 성공하시는 분이 있으시면 소스코드 공유해주세요ㅠㅠ
728x90
반응형
'코딩 공부 > C#' 카테고리의 다른 글
[C# / 백준] 1193번 문제 분수찾기 (0) | 2024.06.04 |
---|---|
[C# / 백준] 2805번 문제 나무자르기 (2) | 2024.06.03 |
[C#/백준] 11866번 문제 - 요세푸스 문제 (0) | 2024.04.15 |
[C#/백준] 2164번 문제 - 카드2 (0) | 2024.04.08 |
[C#/백준] 18258번 문제 큐 2 (0) | 2024.04.08 |