From 04d1e6774c196a271c9abdbe225418d3ac163524 Mon Sep 17 00:00:00 2001 From: Sion Date: Mon, 13 Nov 2023 14:03:52 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[3=EC=A3=BC=EC=B0=A8]=20=EA=B9=80=EC=88=98?= =?UTF-8?q?=ED=98=84=20-=20=EC=8A=A4=ED=83=9D=20=EC=88=98=EC=97=B4=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...355\203\235_\354\210\230\354\227\264.java" | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 "ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" diff --git "a/ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" "b/ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" new file mode 100644 index 0000000..89d1727 --- /dev/null +++ "b/ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" @@ -0,0 +1,57 @@ +package week3; + +import java.io.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +public class 스택_수열 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + Stack stack = new Stack<>(); + int n = Integer.parseInt(br.readLine()); + int[] arr = new int[n]; + for (int i = 0; i < n; i++) { + arr[i] = Integer.parseInt(br.readLine()); + } + + List answer = new ArrayList<>(); + + int count = 1; + for (int num : arr) { + if (stack.empty()) { + for (int i = 0; i < num; i++) { + stack.push(count++); + answer.add("+"); + } + } + while (stack.peek() < num) { + stack.push(count++); + answer.add("+"); + } + if (stack.peek() != num) { + bw.write("NO"); + bw.close(); + return; + } + stack.pop(); + answer.add("-"); + } + + for (String ans : answer) { + bw.write(ans); + bw.newLine(); + } + + bw.close(); + } +} + + + + + + + + From efa40be7826afa9b68afecfe7aea08738404f5b0 Mon Sep 17 00:00:00 2001 From: Sion Date: Mon, 13 Nov 2023 14:27:52 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[3=EC=A3=BC=EC=B0=A8=20-=202=EC=B0=A8]=20?= =?UTF-8?q?=EA=B9=80=EC=88=98=ED=98=84=20-=20=EC=8A=A4=ED=83=9D=20?= =?UTF-8?q?=EC=88=98=EC=97=B4=20=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...355\203\235_\354\210\230\354\227\264.java" | 39 ++++--------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git "a/ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" "b/ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" index 89d1727..7999b82 100644 --- "a/ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" +++ "b/ksh/week3/\354\212\244\355\203\235_\354\210\230\354\227\264.java" @@ -2,56 +2,33 @@ import java.io.*; import java.util.Stack; -import java.util.List; -import java.util.ArrayList; public class 스택_수열 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); Stack stack = new Stack<>(); + int n = Integer.parseInt(br.readLine()); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = Integer.parseInt(br.readLine()); } - List answer = new ArrayList<>(); + StringBuilder sb = new StringBuilder(); int count = 1; for (int num : arr) { - if (stack.empty()) { - for (int i = 0; i < num; i++) { - stack.push(count++); - answer.add("+"); - } - } - while (stack.peek() < num) { + while (stack.empty() || stack.peek() < num) { stack.push(count++); - answer.add("+"); + sb.append("+\n"); } if (stack.peek() != num) { - bw.write("NO"); - bw.close(); + System.out.println("NO"); return; } stack.pop(); - answer.add("-"); - } - - for (String ans : answer) { - bw.write(ans); - bw.newLine(); + sb.append("-\n"); } - - bw.close(); + System.out.println(sb); } -} - - - - - - - - +} \ No newline at end of file From e0bed40b9c4b8a96fc012e5f32e4052e0493c675 Mon Sep 17 00:00:00 2001 From: Sion Date: Mon, 13 Nov 2023 16:23:12 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[3=EC=A3=BC=EC=B0=A8]=20=EA=B9=80=EC=88=98?= =?UTF-8?q?=ED=98=84=20-=20=EC=98=A4=ED=81=B0=EC=88=98=20=ED=92=80?= =?UTF-8?q?=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\230\244\355\201\260\354\210\230.java" | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 "ksh/week3/\354\230\244\355\201\260\354\210\230.java" diff --git "a/ksh/week3/\354\230\244\355\201\260\354\210\230.java" "b/ksh/week3/\354\230\244\355\201\260\354\210\230.java" new file mode 100644 index 0000000..90b1256 --- /dev/null +++ "b/ksh/week3/\354\230\244\355\201\260\354\210\230.java" @@ -0,0 +1,35 @@ +package week3; + +import java.io.*; +import java.util.*; + +class 오큰수 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + Stack stack = new Stack<>(); + + int n = Integer.parseInt(br.readLine()); + StringTokenizer st = new StringTokenizer(br.readLine()); + int[] arr = new int[n]; + for (int i = 0; i < n; i++) { + arr[i] = Integer.parseInt(st.nextToken()); + } + + for (int i = 0; i < n; i++) { + while (!stack.empty() && arr[stack.peek()] < arr[i]) { + arr[stack.pop()] = arr[i]; + } + stack.push(i); + } + + while (!stack.empty()) { + arr[stack.pop()] = -1; + } + + for (int num : arr) { + bw.write(num + " "); + } + bw.close(); + } +} From 99cb6a8e0bfa1637d35553595da6d764aa536764 Mon Sep 17 00:00:00 2001 From: Sion Date: Fri, 17 Nov 2023 13:33:16 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[3=EC=A3=BC=EC=B0=A8]=20=EA=B9=80=EC=88=98?= =?UTF-8?q?=ED=98=84=20-=20=EC=98=A4=ED=81=B0=EC=88=98=20=ED=92=80?= =?UTF-8?q?=EC=9D=B4(=EC=8B=9C=EA=B0=84=EC=B4=88=EA=B3=BC=EA=B0=80=20?= =?UTF-8?q?=EB=82=AC=EB=8D=98=20=EC=BD=94=EB=93=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\230\244\355\201\260\354\210\230.java" | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 "ksh/week3/\354\230\244\355\201\260\354\210\230.java" diff --git "a/ksh/week3/\354\230\244\355\201\260\354\210\230.java" "b/ksh/week3/\354\230\244\355\201\260\354\210\230.java" new file mode 100644 index 0000000..db3485f --- /dev/null +++ "b/ksh/week3/\354\230\244\355\201\260\354\210\230.java" @@ -0,0 +1,35 @@ +package week3; + +import java.io.*; +import java.util.StringTokenizer; + +public class 오큰수 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + int n = Integer.parseInt(br.readLine()); + + StringTokenizer st = new StringTokenizer(br.readLine()); + int[] arr = new int[n]; + boolean[] hasBiggerThanMe = new boolean[n]; + for (int i = 0; i < n; i++) { + arr[i] = Integer.parseInt(st.nextToken()); + } + + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { + if (arr[i] < arr[j]) { + bw.write(arr[j] + " "); + hasBiggerThanMe[i] = true; + break; + } + } + if (!hasBiggerThanMe[i]) { + bw.write(-1 + " "); + } + } + + bw.close(); + } +} From 9f176424c5453f668509db197add9b50a3629528 Mon Sep 17 00:00:00 2001 From: Sion Date: Fri, 17 Nov 2023 13:34:17 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[3=EC=A3=BC=EC=B0=A8]=20=EA=B9=80=EC=88=98?= =?UTF-8?q?=ED=98=84=20-=20=EC=98=A4=ED=81=B0=EC=88=98=20=ED=92=80?= =?UTF-8?q?=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\230\244\355\201\260\354\210\230.java" | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git "a/ksh/week3/\354\230\244\355\201\260\354\210\230.java" "b/ksh/week3/\354\230\244\355\201\260\354\210\230.java" index db3485f..c606600 100644 --- "a/ksh/week3/\354\230\244\355\201\260\354\210\230.java" +++ "b/ksh/week3/\354\230\244\355\201\260\354\210\230.java" @@ -1,35 +1,37 @@ package week3; import java.io.*; +import java.util.Stack; import java.util.StringTokenizer; public class 오큰수 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + Stack stack = new Stack<>(); int n = Integer.parseInt(br.readLine()); - StringTokenizer st = new StringTokenizer(br.readLine()); int[] arr = new int[n]; - boolean[] hasBiggerThanMe = new boolean[n]; for (int i = 0; i < n; i++) { arr[i] = Integer.parseInt(st.nextToken()); } for (int i = 0; i < n; i++) { - for (int j = i + 1; j < n; j++) { - if (arr[i] < arr[j]) { - bw.write(arr[j] + " "); - hasBiggerThanMe[i] = true; - break; - } - } - if (!hasBiggerThanMe[i]) { - bw.write(-1 + " "); + while (!stack.empty() && arr[stack.peek()] < arr[i]) { + arr[stack.pop()] = arr[i]; } + stack.push(i); + } + + while (!stack.empty()) { + arr[stack.pop()] = -1; } + + for (int num : arr) { + bw.write(num + " "); + } bw.close(); } }