diff --git "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BFS.java" "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BFS.java" index 6a84351..7f13f34 100644 --- "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BFS.java" +++ "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BFS.java" @@ -2,4 +2,13 @@ public class BFS implements Algorithm { + @Override + public boolean isSolution(Algorithm algorithm) { + return algorithm instanceof BFS; + } + + @Override + public String getSolution() { + return "주변부터 둘러보기"; + } } diff --git "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BinarySearch.java" "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BinarySearch.java" index 1981fb0..da08ecd 100644 --- "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BinarySearch.java" +++ "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/BinarySearch.java" @@ -2,4 +2,13 @@ public class BinarySearch implements Algorithm { + @Override + public boolean isSolution(Algorithm algorithm) { + return algorithm instanceof BinarySearch; + } + + @Override + public String getSolution() { + return "반띵 ㄱㄱ"; + } } diff --git "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DFS.java" "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DFS.java" index 3685181..606bf78 100644 --- "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DFS.java" +++ "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DFS.java" @@ -2,4 +2,13 @@ public class DFS implements Algorithm { + @Override + public boolean isSolution(Algorithm algorithm) { + return algorithm instanceof DFS; + } + + @Override + public String getSolution() { + return "나는 한 놈씩 조져"; + } } diff --git "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DP.java" "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DP.java" index 083e387..d3655eb 100644 --- "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DP.java" +++ "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/DP.java" @@ -2,4 +2,13 @@ public class DP implements Algorithm { + @Override + public boolean isSolution(Algorithm algorithm) { + return algorithm instanceof DP; + } + + @Override + public String getSolution() { + return "누가 첫날부터 DP문제를 들고옵니까"; + } } diff --git "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Main.java" "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Main.java" index e203928..fbfed2a 100644 --- "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Main.java" +++ "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Main.java" @@ -1,8 +1,29 @@ package com.example.algorithmbot; +import java.util.List; + public class Main { public static void main(String[] args) { + Wchae wchae = new Wchae(); + List algorithmList = List.of(new BFS(), new DFS(), new TwoPointer(), + new BinarySearch(), new DP()); + + for (int i = 0; i < 20; i++) { + Algorithm first = algorithmList.get((int) (Math.random() * 5)); + Algorithm second = algorithmList.get((int) (Math.random() * 5)); + printTodaysAlgorithm(first, second); + printWchaeSolveResult(wchae.solveAlgorithm(first), wchae.solveAlgorithm(second)); + System.out.println(); + } + } + + public static void printTodaysAlgorithm(Algorithm first, Algorithm second) { + System.out.printf("오늘의 알고리즘 : %s, %s\n", first.getClass().getSimpleName(), + second.getClass().getSimpleName()); + } + public static void printWchaeSolveResult(String firstResult, String secondResult) { + System.out.printf("우주 : %s / %s\n", firstResult, secondResult); } } diff --git "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/TwoPointer.java" "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/TwoPointer.java" index 15f5ba3..608f1fd 100644 --- "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/TwoPointer.java" +++ "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/TwoPointer.java" @@ -2,4 +2,13 @@ public class TwoPointer implements Algorithm { + @Override + public boolean isSolution(Algorithm algorithm) { + return algorithm instanceof TwoPointer; + } + + @Override + public String getSolution() { + return "너에게 닿기를..."; + } } diff --git "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Wchae.java" "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Wchae.java" index 8e3087a..f37d0c8 100644 --- "a/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Wchae.java" +++ "b/v1/backend/JAVA_LV_2_\354\225\214\352\263\240\353\246\254\354\246\230\354\235\230_\352\265\264\353\240\210/src/main/java/com/example/algorithmbot/Wchae.java" @@ -1,5 +1,35 @@ package com.example.algorithmbot; +import java.util.HashMap; +import java.util.Map; + public class Wchae { + private final Map algorithmMap; + + public Wchae() { + algorithmMap = new HashMap<>(); + } + + public String solveAlgorithm(Algorithm algorithm) { + Integer solveCount = algorithmMap.getOrDefault(algorithm, 0); + // 풀어보지 못한 알고리즘인 경우 + boolean isSolvedAlgorithm = algorithmMap.keySet() + .stream() + .filter(x -> x.isSolution(algorithm)) + .findAny().isPresent(); + if (!isSolvedAlgorithm) { + algorithmMap.put(algorithm, 1); + return "스트레스 받네..."; + } + // 풀어본 알고리즘인 경우 + boolean isSolved = Math.random() * 10 > solveCount; + if (isSolved) { + if (solveCount < 10) { + algorithmMap.put(algorithm, solveCount + 1); + } + return algorithm.getSolution(); + } + return "스트레스 받네..."; + } }