-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Silver IV] Title: 덱 2, Time: 1332 ms, Memory: 70640 KB -BaekjoonHub
- Loading branch information
Showing
2 changed files
with
83 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# [Silver IV] 덱 2 - 28279 | ||
|
||
[문제 링크](https://www.acmicpc.net/problem/28279) | ||
|
||
### 성능 요약 | ||
|
||
메모리: 70640 KB, 시간: 1332 ms | ||
|
||
### 분류 | ||
|
||
자료 구조, 덱 | ||
|
||
### 제출 일자 | ||
|
||
2024년 7월 13일 22:48:16 | ||
|
||
### 문제 설명 | ||
|
||
<p>정수를 저장하는 덱을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.</p> | ||
|
||
<p>명령은 총 여덟 가지이다.</p> | ||
|
||
<ol> | ||
<li><span style="color:#e74c3c;"><code>1 X</code></span>: 정수 <var>X</var>를 덱의 앞에 넣는다. (1 ≤ <var>X</var> ≤ 100,000)</li> | ||
<li><span style="color:#e74c3c;"><code>2 X</code></span>: 정수 <var>X</var>를 덱의 뒤에 넣는다. (1 ≤ <var>X</var> ≤ 100,000)</li> | ||
<li><span style="color:#e74c3c;"><code>3</code></span>: 덱에 정수가 있다면 맨 앞의 정수를 빼고 출력한다. 없다면 <span style="color:#e74c3c;"><code>-1</code></span>을 대신 출력한다.</li> | ||
<li><span style="color:#e74c3c;"><code>4</code></span>: 덱에 정수가 있다면 맨 뒤의 정수를 빼고 출력한다. 없다면 <span style="color:#e74c3c;"><code>-1</code></span>을 대신 출력한다.</li> | ||
<li><span style="color:#e74c3c;"><code>5</code></span>: 덱에 들어있는 정수의 개수를 출력한다.</li> | ||
<li><span style="color:#e74c3c;"><code>6</code></span>: 덱이 비어있으면 <span style="color:#e74c3c;"><code>1</code></span>, 아니면 <span style="color:#e74c3c;"><code>0</code></span>을 출력한다.</li> | ||
<li><span style="color:#e74c3c;"><code>7</code></span>: 덱에 정수가 있다면 맨 앞의 정수를 출력한다. 없다면 <span style="color:#e74c3c;"><code>-1</code></span>을 대신 출력한다.</li> | ||
<li><span style="color:#e74c3c;"><code>8</code></span>: 덱에 정수가 있다면 맨 뒤의 정수를 출력한다. 없다면 <span style="color:#e74c3c;"><code>-1</code></span>을 대신 출력한다.</li> | ||
</ol> | ||
|
||
### 입력 | ||
|
||
<p>첫째 줄에 명령의 수 <var>N</var>이 주어진다. (1 ≤ <var>N</var> ≤ 1,000,000)</p> | ||
|
||
<p>둘째 줄부터 <var>N</var>개 줄에 명령이 하나씩 주어진다.</p> | ||
|
||
<p>출력을 요구하는 명령은 하나 이상 주어진다.</p> | ||
|
||
### 출력 | ||
|
||
<p>출력을 요구하는 명령이 주어질 때마다 명령의 결과를 한 줄에 하나씩 출력한다.</p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
import sys | ||
from collections import deque | ||
input = sys.stdin.readline | ||
n = int(input()) | ||
lst = deque() | ||
for i in range(n): | ||
a = list(map(int,input().split())) | ||
if a[0] == 1: | ||
lst.appendleft(a[1]) | ||
elif a[0]==2: | ||
lst.append(a[1]) | ||
elif a[0] == 3: | ||
if len(lst) == 0: | ||
print(-1) | ||
else: | ||
print(lst.popleft()) | ||
elif a[0] == 4: | ||
if len(lst) == 0: | ||
print(-1) | ||
else: | ||
print(lst.pop()) | ||
elif a[0] == 5: | ||
print(len(lst)) | ||
elif a[0] == 6: | ||
if len(lst) == 0: | ||
print(1) | ||
else: | ||
print(0) | ||
elif a[0] == 7: | ||
if len(lst) != 0: | ||
print(lst[0]) | ||
else: | ||
print(-1) | ||
else: | ||
if len(lst) != 0: | ||
print(lst[-1]) | ||
else: | ||
print(-1) |