728x90
반응형
안녕하세요 놀이방 사장입니다.
이번 포스팅은 백준 10845
"큐"문제입니다.
큐라는 자료구조를 아시면 그대로 구현하시면 되는 문제입니다.
자바에서는 queue 가 구현되어 있습니다.
그걸 사용하셔도 되지만 그러면 의미가 없으니깐 배열로 구현해보았습니다.
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
구현 코드
/*
백준 10845 큐
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;
// 배열로 큐 만들기
public class Main{
static int[] que = new int[10001];
static int first = 0;
static int last = 0;
// push
public static void push(int x){
que[last] = x;
last++;
}
// pop
public static int pop(){
if(last - first == 0){ //큐에 아무 데이터도 없을 때
return -1;
}else{
int value = que[first];
first++;
return value;
}
}
// size
public static int size(){
return last - first;
}
// empty
public static int empty(){
if(last - first == 0){
return 1;
}else{
return 0;
}
}
// front
public static int front(){
if(last-first == 0){
return -1;
}else{
int value = que[first];
return value;
}
}
// back
public static int back(){
if(last-first == 0){
return -1;
}else{
int value = que[last-1];
return value;
}
}
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
for(int i=0; i<n; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
String S = st.nextToken();
switch(S){
case "push" :
push(Integer.parseInt(st.nextToken()));
break;
case "pop" :
System.out.println(pop());
break;
case "size" :
System.out.println(size());
break;
case "empty" :
System.out.println(empty());
break;
case "front" :
System.out.println(front());
break;
case "back" :
System.out.println(back());
break;
}
}
}
}'
push : 데이터 삽입
pop : 데이터 출력(출력된 데이터는 삭제)
=> 근데 데이터가 없을 때는 -1 처리
size : 끝 - 시작을 해줘서 사이즈를 구함
empty : 데이터가 들어가 있는지 확인
front : 맨앞에 데이터 출력
back : 맨 끝 데이터 삭제
코드를 보면 하나씩 구분되어있어서 조금만 보셔도 구분 가능하실 거에요
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 10816] 숫자카드2 - JAVA[이중 for문, 이분탐색, 자료구조 : 해시맵, Counting] 기법 (0) | 2024.01.14 |
---|---|
[백준 10845]- 덱- JAVA [배열 구현] (1) | 2024.01.14 |
[백준 1920]- 수찾기- JAVA [이분탐색, Arrays binarySearch 사용] (0) | 2024.01.14 |
[백준 10773]- 제로- JAVA [스택사용] (1) | 2024.01.13 |
[백준 1026]- 보물 - JAVA [배열 B 정렬 X] (0) | 2024.01.13 |