From 4a359630c3e090fab25bf0ec5d6f32919d70154b Mon Sep 17 00:00:00 2001 From: Park Semin Date: Fri, 28 Mar 2025 14:25:12 +0900 Subject: [PATCH 1/3] [ADD] baekjoon 18258 java solution --- solutions/baekjoon/18258/Main.java | 81 ++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 solutions/baekjoon/18258/Main.java diff --git a/solutions/baekjoon/18258/Main.java b/solutions/baekjoon/18258/Main.java new file mode 100644 index 0000000..d0f44d9 --- /dev/null +++ b/solutions/baekjoon/18258/Main.java @@ -0,0 +1,81 @@ +// Authored by : semInDev +// Co-authored by : - +// Link : https://www.acmicpc.net/problem/18258 + +import java.util.*; +import java.io.*; + +public class Main { + + public static void main(String[] args) throws IOException { + FastReader input = new FastReader(); + + Deque deque = new ArrayDeque<>(); // back명령어를 사용하기 위해 deque이용 + StringBuilder sb = new StringBuilder(); + + int N = input.nextInt(); + while(N-->0) { + String cmd = input.next(); + switch (cmd) { + case "push": + int X = input.nextInt(); + deque.add(X); + break; + case "pop": + if(deque.isEmpty()) sb.append(-1+"\n"); + else sb.append(deque.poll()+"\n"); + break; + case "size": + sb.append(deque.size()+"\n"); + break; + case "empty": + if(deque.isEmpty()) sb.append(1+"\n"); + else sb.append(0+"\n"); + break; + case "front": + if(deque.isEmpty()) sb.append(-1+"\n"); + else sb.append(deque.peekFirst()+"\n"); + break; + case "back": + if(deque.isEmpty()) sb.append(-1+"\n"); + else sb.append(deque.peekLast()+"\n"); + } + } + System.out.print(sb); + } + + static class FastReader { + BufferedReader br; + StringTokenizer st; + + public FastReader() throws IOException{ + br = new BufferedReader(new InputStreamReader(System.in)); //백준 제출 시 주석해제를 하면 됩니다. + // br = new BufferedReader(new FileReader("input.txt")); //IDE 실행 시 주석해제를 하면 됩니다. + } + + String next() { + while(st == null || !st.hasMoreElements()) { + try { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() { return Integer.parseInt(next()); } + long nextLong() { return Long.parseLong(next()); } + String nextLine() { + String str = ""; + try { + str = br.readLine(); + } + catch (IOException e) { + e.printStackTrace(); + } + return str; + } + } +} \ No newline at end of file From fc59b8826e338c8f7a21d86f0e1f10da099a6609 Mon Sep 17 00:00:00 2001 From: Park Semin Date: Fri, 28 Mar 2025 14:36:38 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[chore]=20baekjoon=2018258=20java=20solutio?= =?UTF-8?q?n=20Solution=20Description=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- solutions/baekjoon/18258/Main.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/solutions/baekjoon/18258/Main.java b/solutions/baekjoon/18258/Main.java index d0f44d9..2b9346e 100644 --- a/solutions/baekjoon/18258/Main.java +++ b/solutions/baekjoon/18258/Main.java @@ -78,4 +78,12 @@ String nextLine() { return str; } } -} \ No newline at end of file +} + +/* Solution Description + 1. 큐를 단순히 구현할 수 있지만, 이는 라이브코테에서 요구되는 방식이라고 판단하여 + '빠르게' 풀어야 하는 코딩테스트에서는 java의 컬렉션 프레임워크를 사용하는 것이 적절하다고 판단했다. + 2. 문제 제목은 queue지만, 뒤에서 peek하는 과정인 'back'을 요구하여 deque를 사용했다. + 3. 또한, 가독성을 위하여 cmd.equals("push")를 if문으로 나열하기보다는 + switch를 활용했다. + */ \ No newline at end of file From a86a50faf2eaa842e753f19b8404bb6be442cdba Mon Sep 17 00:00:00 2001 From: sem_in_github Date: Sat, 19 Apr 2025 16:29:14 +0900 Subject: [PATCH 3/3] Update baekjoon 18258 java solution --- solutions/baekjoon/18258/Main.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/baekjoon/18258/Main.java b/solutions/baekjoon/18258/Main.java index 2b9346e..f8a87a3 100644 --- a/solutions/baekjoon/18258/Main.java +++ b/solutions/baekjoon/18258/Main.java @@ -1,6 +1,6 @@ // Authored by : semInDev // Co-authored by : - -// Link : https://www.acmicpc.net/problem/18258 +// Link : http://boj.kr/b5075c94d3bf4cc8b4e80b09cba16bbe import java.util.*; import java.io.*; @@ -86,4 +86,4 @@ String nextLine() { 2. 문제 제목은 queue지만, 뒤에서 peek하는 과정인 'back'을 요구하여 deque를 사용했다. 3. 또한, 가독성을 위하여 cmd.equals("push")를 if문으로 나열하기보다는 switch를 활용했다. - */ \ No newline at end of file + */