728x90

<오늘의 학습 키워드>
- 큐
<오늘의 문제>
제목 : 백준 / 실버4 / 10845번 큐
https://www.acmicpc.net/problem/10845
<풀이>
정답은 더보기
더보기
package BOJ.자료구조.큐_10845.insub2004_241110;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
private static class MyQueue {
int[] array = new int[10001];
int top = 0;
int head = -1;
int size = 0;
public void push(int x) {
array[++head] = x;
size++;
}
public int pop() {
if (size == 0) {
return -1;
}
size--;
return array[top++];
}
public int size() {
return size;
}
public int empty() {
return size == 0 ? 1 : 0;
}
public int front() {
if (size == 0) {
return -1;
}
return array[top];
}
public int back() {
if (size == 0) {
return -1;
}
return array[head];
}
}
public static void main(String[] args) throws Exception {
MyQueue queue = new MyQueue();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
String[] str = br.readLine().split(" ");
if (str.length == 2) {
queue.push(Integer.parseInt(str[1]));
}
switch (str[0]) {
case "pop" :
System.out.println(queue.pop());
break;
case "size" :
System.out.println(queue.size);
break;
case "empty" :
System.out.println(queue.empty());
break;
case "front" :
System.out.println(queue.front());
break;
case "back" :
System.out.println(queue.back());
break;
}
}
}
}
- 바로 전 스택 문제와 마찬가지로 구현되어있는 Queue말고 MyQueue 클래스를 직접 구현해서 진행했다.
- 해당 문제에서는 정수만 저장한다고 나와있어서 굳이 제네릭을 사용하지 않았다.
- Myqueue클래스 내부의 int[ ] 배열은 정수를 저장할 용도
- top는 queue의 제일 앞을 가리키고 있다.
- head는 queue에 정수가 push될 때 사용할 인덱스 변수다.
- size는 현재 queue에 정수가 얼만큼 있는지 나타내는 변수다.
<결론, 주의할점>
반응형
'Study or Lecture > 항해 99클럽 코딩테스트 스터디' 카테고리의 다른 글
| 항해 99클럽 코딩테스트 스터디 16일차 TIL (자바 / 비기너) (0) | 2024.11.12 |
|---|---|
| 항해 99클럽 코딩테스트 스터디 일차 15TIL (자바 / 비기너) (2) | 2024.11.11 |
| 항해 99클럽 코딩테스트 스터디 13일차 TIL (자바/비기너) (1) | 2024.11.09 |
| 항해 99클럽 코딩테스트 스터디 12일차 TIL (비기너) (1) | 2024.11.08 |
| 항해 99클럽 코딩테스트 스터디 11일차 TIL (비기너) (1) | 2024.11.07 |
댓글