CHAAANY ARCHIVE

Queue

2개의 기록을 주제별로 둘러보세요.

백준 18258 큐 2 Java: ArrayDeque와 빠른 입출력

백준 18258번은 여섯 가지 명령으로 큐의 선입선출 동작을 구현하는 문제다. 원문에서는 같은 코드를 삼항 연산자 사용 전후로 나눠 보았다. 다시 정리해 보니 핵심은 표현식의 길이가 아니라 큐의 양 끝을 어떻게 다루고, 최대 200만 개의 명령을 어떻게 한꺼번에 출력하느냐에 있었다.백준 18258번 큐 2배열과 두 인덱스로 큐 자체를 구현하는 방법은 백준 18258 배열 큐 풀이에 따로 남겼다. 이 글에서는 Java 표준 자료구조인 ArrayDeque를 사용한다.명령을 Queue 연산으로 그대로 옮긴다ArrayDeque에서는 앞과 뒤를 메서드 이름으로 분명하게 드러낼 수 있다.명령ArrayDeque 연산비어 있을 때push XaddLast(X)해당 없음popremoveFirst()-1 출력sizesize..

백준 15828 Router Java: 제한된 Buffer를 Queue로 시뮬레이션하기

백준 15828번 ‘Router’는 크기가 정해진 buffer에 packet을 넣고 처리하는 과정을 simulation한다. 들어온 packet number는 queue 뒤에 넣고, 0이면 가장 앞 packet을 처리하며, -1이면 입력을 끝낸다.백준 15828번 Router입력값별 동작입력동작양수buffer에 빈자리가 있으면 뒤에 추가, 가득 차면 버림0buffer가 비어 있지 않으면 앞 packet 제거-1simulation 종료queue의 실제 크기를 size()로 확인하면 별도의 packetCount를 동기화할 필요가 없다. 두 상태를 따로 관리하면 한쪽만 갱신하는 branch에서 오류가 생길 수 있다.Java 코드import java.io.BufferedReader;import java.io.I..

728x90