https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
이와 비슷한 문제로 10828 스택(https://yoloaeee.tistory.com/142) 이 있다. 저 문제는 기존 자료구조 시간에 배울때처럼 node를 이용했다면 이번에는 그냥 자바 자체의 LinkedList 라이브러리를 이용해서 좀 더 간단하게 해결했다.
문제 및 입출력
코드
import java.util.LinkedList;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
LinkedList<Integer> q = new LinkedList<Integer>();
StringBuilder sb = new StringBuilder();
int n = sc.nextInt();
for(int i=0; i<n; i++)
{
String input = sc.next();
// 입력받는 명령어에 따라 구현
if(input.equals("front"))
{
sb.append(q.peekFirst()==null?-1:q.peekFirst());
sb.append("\n");
}
else if(input.equals("back"))
{
sb.append(q.peekLast()==null?-1:q.peekLast());
sb.append("\n");
}
else if(input.equals("empty"))
{
sb.append(q.isEmpty()==true?1:0);
sb.append("\n");
}
else if(input.equals("size"))
{
sb.append(q.size());
sb.append("\n");
}
else if(input.equals("pop"))
{
sb.append(q.peek()==null?-1:q.poll());
sb.append("\n");
}
else // queue에 push할 경우에는 출력 X
{
String temp = sc.next();
q.add(Integer.parseInt(temp + ""));
}
}
System.out.print(sb.toString());
sc.close();
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[백준] 1966 프린터 큐 (0) | 2021.11.15 |
---|---|
[백준] 15829 Hashing (0) | 2021.11.13 |
[백준] 1927 최소 힙 (0) | 2021.11.12 |
[프로그래머스] 레벨2 괄호 변환 (0) | 2021.11.11 |
[프로그래머스] 레벨2 메뉴 리뉴얼 (0) | 2021.11.10 |
댓글