From 7877ff7c395bf6a9b2d4b19dd72d45ff7e5d2c3e Mon Sep 17 00:00:00 2001 From: kdg0209 Date: Mon, 15 May 2023 22:05:55 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=98=88=EC=A0=9C=2012=EB=B2=88?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/doit/algorithm/kdg/Main.java | 49 +++++++++++++++++++ .../com/doit/algorithm/kdg/Problem012.java | 33 +++++++++++++ .../doit/algorithm/kdg/Problem012Test.java | 28 +++++++++++ 3 files changed, 110 insertions(+) create mode 100644 src/main/java/com/doit/algorithm/kdg/Main.java create mode 100644 src/main/java/com/doit/algorithm/kdg/Problem012.java create mode 100644 src/test/java/com/doit/algorithm/kdg/Problem012Test.java diff --git a/src/main/java/com/doit/algorithm/kdg/Main.java b/src/main/java/com/doit/algorithm/kdg/Main.java new file mode 100644 index 0000000..02f5ad4 --- /dev/null +++ b/src/main/java/com/doit/algorithm/kdg/Main.java @@ -0,0 +1,49 @@ +package com.doit.algorithm.kdg; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; +import java.util.stream.Collectors; + +public class Main { + + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + + int n = in.nextInt(); + String s = ""; + + for (int i = 0; i < n; i++) { + s += in.nextInt() + " "; + } + + String result = solution(n, s); + + System.out.println(result); + } + + public static String solution(int n, String s) { + List result = new ArrayList<>(); + int[] numbers = new int[n]; + + String[] split = s.split(" "); + for (int i = 0; i < split.length; i++) { + numbers[i] = Integer.parseInt(split[i]); + } + + for (int i = 0; i < n; i++) { + int max = 0; + for (int j = n -1; j > i; j--) { + if (numbers[i] < numbers[j]) { + max = numbers[j]; + } + } + if (max == 0 ) result.add(-1); + else result.add(max); + } + + return result.stream() + .map(String::valueOf) + .collect(Collectors.joining(" ")); + } +} diff --git a/src/main/java/com/doit/algorithm/kdg/Problem012.java b/src/main/java/com/doit/algorithm/kdg/Problem012.java new file mode 100644 index 0000000..271af24 --- /dev/null +++ b/src/main/java/com/doit/algorithm/kdg/Problem012.java @@ -0,0 +1,33 @@ +package com.doit.algorithm.kdg; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +public class Problem012 { + + public static String solution(int n, String s) { + List result = new ArrayList<>(); + int[] numbers = new int[n]; + + String[] split = s.split(" "); + for (int i = 0; i < split.length; i++) { + numbers[i] = Integer.parseInt(split[i]); + } + + for (int i = 0; i < n; i++) { + int max = 0; + for (int j = n -1; j > i; j--) { + if (numbers[i] < numbers[j]) { + max = numbers[j]; + } + } + if (max == 0 ) result.add(-1); + else result.add(max); + } + + return result.stream() + .map(String::valueOf) + .collect(Collectors.joining(" ")); + } +} diff --git a/src/test/java/com/doit/algorithm/kdg/Problem012Test.java b/src/test/java/com/doit/algorithm/kdg/Problem012Test.java new file mode 100644 index 0000000..bdffe13 --- /dev/null +++ b/src/test/java/com/doit/algorithm/kdg/Problem012Test.java @@ -0,0 +1,28 @@ +package com.doit.algorithm.kdg; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class Problem012Test { + + @Test + void solution_1() { + int n = 4; + String s = "3 5 2 7"; + + String result = Problem012.solution(n, s); + + assertThat(result).isEqualTo("5 7 7 -1"); + } + @Test + void solution_2() { + int n = 4; + String s = "9 5 4 8"; + + String result = Problem012.solution(n, s); + + assertThat(result).isEqualTo("-1 8 8 -1"); + } + +}