🔑알고리즘/baekjoon

백준 10845 : 큐 - 자바(java) 문제 풀이

2022. 5. 10. 12:40
반응형

https://www.acmicpc.net/problem/10845

 

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

 

문제 이름을 보면 알 수 있듯이 큐를 사용하고 조건에 맞게 문제를 풀면 된다. 

 

 

BufferedReader와 BufferedWriter를 사용하였고, contains()를 활용해 문자열을 조건에 넣었다. 

 

 

front는 element를 활용하면 되는데 back을 어떻게 해결할까 고민을 했다.

 

iterator를 활용해야하나? 생각도 했지만 hasNext() 를 활용하면 마지막 next()의 값을 빼낼 수 없을 것 같아서 push 입력을 받을 때마다 변수 rear에 값을 저장하는 방법을 사용했다.

 

import java.util.*;
import java.io.*;

public 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));
		
		Queue<Integer> queue = new LinkedList<>();
		
		int n = Integer.parseInt(br.readLine());
		int rear = 0;
		for(int i = 0; i < n; i++) {
			String input = br.readLine();
			
			if(input.contains("push")) {
				String[] pushInput = input.split(" ");
				queue.add(Integer.parseInt(pushInput[1]));
				rear = Integer.parseInt(pushInput[1]);
			}
			else if(input.contains("pop")) {
				if(queue.isEmpty()) {
					bw.write("-1\n");
				}
				else {
					bw.write(queue.poll() + "\n");
				}
			}
			else if(input.contains("size")){
				bw.write(queue.size()+"\n");
			}
			else if(input.contains("empty")) {
				if(queue.isEmpty()) {
					bw.write("1\n");
				}
				else {
					bw.write("0\n");
				}
			}
			else if(input.contains("front")) {
				if(queue.isEmpty()) {
					bw.write("-1\n");
				}
				else {
					bw.write(queue.element()+"\n");
				}
			}
			else if(input.contains("back")) {
				if(queue.isEmpty()) {
					bw.write("-1\n");
				}
				else {
					bw.write(rear+"\n");
				}
			}
			
			
		}
		bw.flush();

	}

}

 

 

해결되었다.

반응형
저작자표시 (새창열림)

'🔑알고리즘 > baekjoon' 카테고리의 다른 글

백준 2217 : 로프 - 자바 문제 풀이  (0) 2022.05.21
백준 1026 : 보물 - 자바 문제 풀이  (0) 2022.05.21
백준 4948 : 베르트랑 공준 - 자바 문제 해결 코드  (0) 2022.01.25
백준 1929 : 소수 구하기 - 자바 문제 풀이(시간 초과 해결)  (0) 2022.01.24
백준 11653 : 소인수분해 - 자바 문제 해결 코드  (0) 2022.01.24
'🔑알고리즘/baekjoon' 카테고리의 다른 글
  • 백준 2217 : 로프 - 자바 문제 풀이
  • 백준 1026 : 보물 - 자바 문제 풀이
  • 백준 4948 : 베르트랑 공준 - 자바 문제 해결 코드
  • 백준 1929 : 소수 구하기 - 자바 문제 풀이(시간 초과 해결)
pkyung
pkyung
pkyung
성장하는 중
pkyung
전체
오늘
어제
  • 분류 전체보기
    • 🏆토이 프로젝트에서 생긴 일
    • 🤿백엔드 내실 채우기
    • 🍫카카오 테크 캠퍼스 2기 BE
    • 🍀spring
      • 스프링 입문
      • 스프링 핵심원리 기본
      • 스프링 jpa
      • 🐛debug
    • 🔒보안
    • 🌎infra
      • docker
      • kubernetes
      • cloud
    • 🌐web
      • HTTP 웹 기본 지식
    • 🔑알고리즘
      • baekjoon
      • programming language
    • 🎞️프로젝트
      • android
      • flutter
    • 📚수업
      • 교양과목
    • 💾database
    • ⚙settings
    • 2023 여름 모각코 - 절개와지조
    • 2024 겨울 모각코 - 내 장점은 algorit..

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sql
  • 자바문자열
  • 객체지향
  • be
  • 스택
  • spring
  • 객체지향의사실과오해
  • 파이썬
  • 코드리뷰
  • nginx
  • Docker
  • mysql
  • 백준
  • 문자열
  • BFS
  • 자바
  • JPA
  • 소수
  • 스프링
  • HTTP
  • 스프링기본
  • springboot
  • 카카오테크캠퍼스
  • Security
  • 카테캠
  • 김영한
  • python
  • Java
  • 스프링부트
  • 데이터베이스

최근 댓글

최근 글

hELLO · Designed By 정상우.
pkyung
백준 10845 : 큐 - 자바(java) 문제 풀이
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.