[Java]伯俊10845号[Q]Java
白準10845号です.
https://www.acmicpc.net/problem/10845
質問する
push X:整数Xをキューに入れる演算. pop:キューの一番前の整数を除いて、その数値を出力します.キューに整数がない場合は、-1が出力されます. size:出力キューの整数の個数. NULL:キューがNULLの場合、1または0が出力されます. front:出力キューの一番前の整数.キューに整数がない場合は、-1が出力されます. back:出力キューの一番後ろの整数.キューに整数がない場合は、-1が出力されます. 入力
https://www.acmicpc.net/problem/10845
質問する
整数を格納するキューを実装し、入力としてのコマンドを処理するプログラムを作成してください.
命令は全部で6条ある.
入力
1行目に与えられるコマンド数N(1≦N≦10000).2行目からN行目までそれぞれ1つのコマンドがあります.与えられた整数は1以上であり、100000以下である.問題にない命令はない.
しゅつりょく
出力するコマンドが発行されるたびに、各行に1つのコマンドが出力されます.
入力例 15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front
サンプル出力 1
2
2
0
1
2
-1
0
1
-1
0
3
考える
これは、一般的なキュー構造とリンクリストのデータ構造の特徴の問題です.
一つ一つの命令で解けばいい
削除出力の挿入などのデフォルト機能を使用できます.
TMI
Pass
コード#コード# import java.util.*;
import java.io.*;
public class Main {
static LinkedList<Integer> que = new LinkedList<>();
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
String function = "";
int num = 0;
while(N --> 0) {
st = new StringTokenizer(br.readLine());
if(st.countTokens() > 1) {
function = st.nextToken();
num = Integer.parseInt(st.nextToken());
que.offer(num);
}
else {
function = st.nextToken();
if(function.startsWith("f")) {
front();
}
else if(function.startsWith("b")) {
back();
}
else if(function.startsWith("s")) {
sb.append(que.size()+"\n");
}
else if(function.startsWith("e")) {
empty();
}
else if(function.startsWith("p")) {
pop();
}
}
}
System.out.println(sb);
}
static void pop() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.poll()+"\n");
}
}
static void empty() {
if(que.isEmpty()) {
sb.append(1+"\n");
}
else {
sb.append(0+"\n");
}
}
static void front() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekFirst()+"\n");
}
}
static void back() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekLast()+"\n");
}
}
}
Reference
この問題について([Java]伯俊10845号[Q]Java), 我々は、より多くの情報をここで見つけました
https://velog.io/@lifeisbeautiful/Java-백준-10845번-큐-자바
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
出力するコマンドが発行されるたびに、各行に1つのコマンドが出力されます.
入力例 15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front
サンプル出力 1
2
2
0
1
2
-1
0
1
-1
0
3
考える
これは、一般的なキュー構造とリンクリストのデータ構造の特徴の問題です.
一つ一つの命令で解けばいい
削除出力の挿入などのデフォルト機能を使用できます.
TMI
Pass
コード#コード# import java.util.*;
import java.io.*;
public class Main {
static LinkedList<Integer> que = new LinkedList<>();
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
String function = "";
int num = 0;
while(N --> 0) {
st = new StringTokenizer(br.readLine());
if(st.countTokens() > 1) {
function = st.nextToken();
num = Integer.parseInt(st.nextToken());
que.offer(num);
}
else {
function = st.nextToken();
if(function.startsWith("f")) {
front();
}
else if(function.startsWith("b")) {
back();
}
else if(function.startsWith("s")) {
sb.append(que.size()+"\n");
}
else if(function.startsWith("e")) {
empty();
}
else if(function.startsWith("p")) {
pop();
}
}
}
System.out.println(sb);
}
static void pop() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.poll()+"\n");
}
}
static void empty() {
if(que.isEmpty()) {
sb.append(1+"\n");
}
else {
sb.append(0+"\n");
}
}
static void front() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekFirst()+"\n");
}
}
static void back() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekLast()+"\n");
}
}
}
Reference
この問題について([Java]伯俊10845号[Q]Java), 我々は、より多くの情報をここで見つけました
https://velog.io/@lifeisbeautiful/Java-백준-10845번-큐-자바
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front
1
2
2
0
1
2
-1
0
1
-1
0
3
考える
これは、一般的なキュー構造とリンクリストのデータ構造の特徴の問題です.
一つ一つの命令で解けばいい
削除出力の挿入などのデフォルト機能を使用できます.
TMI
Pass
コード#コード# import java.util.*;
import java.io.*;
public class Main {
static LinkedList<Integer> que = new LinkedList<>();
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
String function = "";
int num = 0;
while(N --> 0) {
st = new StringTokenizer(br.readLine());
if(st.countTokens() > 1) {
function = st.nextToken();
num = Integer.parseInt(st.nextToken());
que.offer(num);
}
else {
function = st.nextToken();
if(function.startsWith("f")) {
front();
}
else if(function.startsWith("b")) {
back();
}
else if(function.startsWith("s")) {
sb.append(que.size()+"\n");
}
else if(function.startsWith("e")) {
empty();
}
else if(function.startsWith("p")) {
pop();
}
}
}
System.out.println(sb);
}
static void pop() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.poll()+"\n");
}
}
static void empty() {
if(que.isEmpty()) {
sb.append(1+"\n");
}
else {
sb.append(0+"\n");
}
}
static void front() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekFirst()+"\n");
}
}
static void back() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekLast()+"\n");
}
}
}
Reference
この問題について([Java]伯俊10845号[Q]Java), 我々は、より多くの情報をここで見つけました
https://velog.io/@lifeisbeautiful/Java-백준-10845번-큐-자바
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.util.*;
import java.io.*;
public class Main {
static LinkedList<Integer> que = new LinkedList<>();
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
String function = "";
int num = 0;
while(N --> 0) {
st = new StringTokenizer(br.readLine());
if(st.countTokens() > 1) {
function = st.nextToken();
num = Integer.parseInt(st.nextToken());
que.offer(num);
}
else {
function = st.nextToken();
if(function.startsWith("f")) {
front();
}
else if(function.startsWith("b")) {
back();
}
else if(function.startsWith("s")) {
sb.append(que.size()+"\n");
}
else if(function.startsWith("e")) {
empty();
}
else if(function.startsWith("p")) {
pop();
}
}
}
System.out.println(sb);
}
static void pop() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.poll()+"\n");
}
}
static void empty() {
if(que.isEmpty()) {
sb.append(1+"\n");
}
else {
sb.append(0+"\n");
}
}
static void front() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekFirst()+"\n");
}
}
static void back() {
if(que.isEmpty()) {
sb.append(-1+"\n");
}
else {
sb.append(que.peekLast()+"\n");
}
}
}
Reference
この問題について([Java]伯俊10845号[Q]Java), 我々は、より多くの情報をここで見つけました https://velog.io/@lifeisbeautiful/Java-백준-10845번-큐-자바テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol