백준 - 큐2 (18258번) 실버 4
2024. 3. 11. 18:57ㆍ코딩테스트 정리(자바)
728x90
1. 생성하기
Queue <Integer> q=new LinkedList<>();
2. 주요 메서드
삽입
q.add(); //성공 시 true, 실패 시 Exception 발생
q.offer(); //성공 시 true, 실패 시 false 반환
삭제
q.remove(); //삭제할 값 반환, 큐가 비어있다면 Exception 발생
q.remove(삭제할 값); //삭제할 값이 존재하면 삭제 후 true 반환, 존재하지 않으면 false 반환
q.poll(); //삭제할 값 반환, 큐가 비어있다면 null 반환
front에 위치한 값 반환
q.element(); //front에 위치한 값 반환, 큐가 비어있다면 Exception 발생
q.peek(); //front에 위치한 값 반환, 큐가 비어있다면 null 반환
초기화
q.clear();
큐 크기 반환
q.size();
큐에 해당 원소가 존재하는지 여부
q.contains(찾을 값) //찾을 값이 존재하면 true, 없으면 false 반환
큐에는 마지막 원소를 반환하는 메서드가 없다.
마지막 원소를 반환하고 싶다면 deque를 생성해서 peeklast() 메서드를 써야 한다.
혹은 큐에 add 할 때마다 last 변수를 사용해서
마지막 원소가 뭐다라고 표시해두어야 한다.
import java.io.*;
import java.util.*;
class Main{
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(
new OutputStreamWriter(System.out));
StringBuilder sb=new StringBuilder();
int N=Integer.parseInt(br.readLine());
Queue <Integer> q=new LinkedList<>();
String last="";
for(int i=0;i<N;i++){
String[] str=br.readLine().split(" ");
switch(str[0]){
case "push":
last=str[1];
q.add(Integer.parseInt(str[1]));
break;
case "pop":
if(!q.isEmpty()){
sb.append(q.remove()).append("\n");
}
else{
sb.append("-1").append("\n");
}
break;
case "size":
sb.append(q.size()).append("\n");
break;
case "empty":
if(q.isEmpty())
sb.append("1").append("\n");
else
sb.append("0").append("\n");
break;
case "front":
if(!q.isEmpty()){
sb.append(q.peek()).append("\n");
}
else{
sb.append("-1").append("\n");
}
break;
case "back":
if(!q.isEmpty()){
sb.append(last).append("\n");
}
else{
sb.append("-1").append("\n");
}
}
}
bw.write(sb.toString());
bw.flush();
bw.close();
}
}728x90
'코딩테스트 정리(자바)' 카테고리의 다른 글
| 백준 - 5430번 AC (골드 5) (0) | 2024.03.14 |
|---|---|
| 백준 - 1021번 회전하는 큐 (실버 3) (2) | 2024.03.12 |
| 백준 - 6198번 옥상 정원 꾸미기 (0) | 2024.03.09 |
| 백준 - 6198번 옥상 정원 꾸미기 (골드 5) (1) | 2024.03.08 |
| 백준 - 2493번 탑 (골드 5) (0) | 2024.03.07 |