๐๏ธ Algorithm/๐ฉ ๋ฐฑ์ค
๐ฉ [๋ฐฑ์ค] [Java] [Silver4] 10866_๋ฑ
Dbswnstjd
2024. 1. 10. 04:23
๋ฌธ์
https://www.acmicpc.net/problem/10866
10866๋ฒ: ๋ฑ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง
www.acmicpc.net
ํ์ด
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.Buffer;
import java.util.*;
public class ๋ฑ {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
Deque<Integer> deque = new ArrayDeque<>();
for(int i=0; i<n; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
String s = st.nextToken();
switch(s){
case "push_front":
deque.addFirst(Integer.parseInt(st.nextToken()));
break;
case "push_back":
deque.addLast(Integer.parseInt(st.nextToken()));
break;
case "pop_front":
if(deque.isEmpty()) sb.append(-1).append("\n");
else sb.append(deque.pollFirst()).append("\n");
break;
case "pop_back":
if(deque.isEmpty()) sb.append(-1).append("\n");
else sb.append(deque.pollLast()).append("\n");
break;
case "size":
sb.append(deque.size()).append("\n");
break;
case "empty" :
if(deque.isEmpty()) sb.append(1).append("\n");
else sb.append(0).append("\n");
break;
case "front":
if(deque.isEmpty()) sb.append(-1).append("\n");
else sb.append(deque.peekFirst()).append("\n");
break;
case "back":
if(deque.isEmpty()) sb.append(-1).append("\n");
else sb.append(deque.peekLast()).append("\n");
break;
}
}
System.out.println(sb);
}
}
์๋ฐ์ Deque๋ฅผ ์ด์ฉํ์ฌ ํ์๋ค. ๋ฑ์ด ๋น์ด์์ ๋๋ฅผ ์ฃผ์ํ์ฌ ํด๊ฒฐํ๋ฉด ๋๋ค.