https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
문제설명
앞서 작성했던 스택과 비슷한 문제이다.
https://ethereal-coder.tistory.com/41
백준 [자바 java] 10828 : 스택
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 10
ethereal-coder.tistory.com
입력받을 문장 수를 입력받고 , 그 횟수만큼 문장이 의미하는 기능을 수행하면 된다.
문제 풀이
- 입력받을 문장 수를 n에 입력받는다.
- n만큼 for문을 만든다
- Integer형식의 Queue를 만든다.
- StringTokneizer로 문자열을 입력받는다.
- push이면 큐에 넣을 수도 입력받고,그 수를 큐의 가장 끝을 의미하는 keep변수와 큐에 집어넣는다.
- 나머지 문자들도 각각 의미하는 기능을 수행하도록 한다(pop와 peek는 값을 stringBuilder에 넣는다.)
풀이 코드
import java.util.*;
import java.io.*;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st ;
StringBuilder sb = new StringBuilder();
Queue<Integer> queue = new LinkedList<>();
int n = Integer.parseInt(br.readLine());
int i;
int keep = 0;
for(i = 0;i<n;i++) {
st = new StringTokenizer(br.readLine());
String now = st.nextToken();
if(now.equals("push")) {
int a = Integer.parseInt(st.nextToken());
queue.offer(a);
keep = a;
}
else if(now.equals("pop")) {
if(queue.isEmpty() == false)
{int k = queue.poll();
sb.append(k).append("\n");}
else sb.append(-1).append("\n");
}
else if(now.equals("size")) {
sb.append(queue.size()).append("\n");
}
else if(now.equals("empty")) {
if(queue.isEmpty() == true) {
sb.append(1).append("\n");
}
else {
sb.append(0).append("\n");
}
}
else if(now.equals("front")) {
if(queue.isEmpty() == false)
sb.append(queue.peek()).append("\n");
else sb.append(-1).append("\n");
}
else if(now.equals("back")) {
if(queue.isEmpty() == false)
sb.append(keep).append("\n");
else sb.append(-1).append("\n");
}
}
System.out.println(sb);
}
}
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 [자바 java] 11279 : 최대 힙 (0) | 2023.07.13 |
---|---|
백준 [자바 java] 1927 : 최소 힙 (0) | 2023.07.13 |
백준 [자바 java] 10828 : 스택 (0) | 2023.07.12 |
백준 [자바 java] 11000 : 강의실 배정 (0) | 2023.07.11 |
백준[자바 java] 1446번 : 지름길 (0) | 2023.07.11 |