
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Queue<Integer> q = new LinkedList<>();
for(int i=0; i<N; i++) {
String str = sc.next();
switch(str) {
case "push" :
q.add(sc.nextInt());
break;
case "pop" :
if(q.size() == 0) {
System.out.println(-1);
}
else {
System.out.println(q.poll());
}
break;
case "size" :
System.out.println(q.size());
break;
case "empty" :
if(q.size() == 0) {
System.out.println(1);
}
else {
System.out.println(0);
}
break;
case "front" :
if(q.size() == 0) {
System.out.println(-1);
}
else {
System.out.println(q.peek());
}
break;
case "back":
if(q.size() == 0) {
System.out.println(-1);
}
else {
System.out.println(((LinkedList<Integer>) q).getLast());
}
}
}
}
}
LinkedList 클래스에서 getLast() 메서드 사용 하여 back 기능 구현
case "back":
if (qqq.isEmpty()) {
System.out.println(-1);
} else {
int last = 0;
for (int value : qqq) {
last = value;
}
System.out.println(last);
}
break;
}
큐를 for-each로 순회하면서 last에 하나씩 대입
마지막 원소일 때 값이 last에 남음
그 값을 출력
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Que q = new Que(N);
for(int i=0; i<N; i++) {
String str = sc.next();
switch(str) {
case "push" :
q.push(sc.nextInt());
break;
case "pop" :
q.pop();
break;
case "size" :
q.size();
break;
case "empty" :
q.empty();
break;
case "front" :
q.front();
break;
case "back" :
q.back();
break;
}
}
}
}
class Que {
int[] arr;
int count = 0;
int t;
public Que(int size) {
arr = new int[size];
}
void push(int X) {
arr[count] = X;
count++;
}
void pop() {
if (count == 0) {
print();
} else {
System.out.println(arr[0]);
for(int i=1; i<count; i++) {
arr[i -1] = arr[i];
}
count--;
}
}
void size() {
System.out.println(count);
}
void empty() {
if(count == 0) {
System.out.println(1);
} else {
System.out.println(0);
}
}
void front() {
if(count == 0) {
print();
} else {
System.out.println(arr[0]);
}
}
void back() {
if (count == 0) {
print();
} else {
System.out.println(arr[count-1]);
}
}
void print() {
System.out.println(-1);
}
}
pop 부분의 로직을 코드로 구현하지 못함
(틀리게 작성)
배열의 앞 요소를 제거 -> 뒤의 요소들을 앞으로 이동