From fef68d6617bc288d9ec62517462248be9428d1fc Mon Sep 17 00:00:00 2001 From: Gabeen-ni Date: Wed, 11 Mar 2026 19:36:57 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20[=EA=B9=80=EA=B0=80=EB=B9=88][26031?= =?UTF-8?q?2]=20=EC=88=AB=EC=9E=90=EC=95=BC=EA=B5=AC=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\236\220\354\225\274\352\265\254.java" | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 "\352\271\200\352\260\200\353\271\210/week14/260312_\354\210\253\354\236\220\354\225\274\352\265\254.java" diff --git "a/\352\271\200\352\260\200\353\271\210/week14/260312_\354\210\253\354\236\220\354\225\274\352\265\254.java" "b/\352\271\200\352\260\200\353\271\210/week14/260312_\354\210\253\354\236\220\354\225\274\352\265\254.java" new file mode 100644 index 0000000..2acdc32 --- /dev/null +++ "b/\352\271\200\352\260\200\353\271\210/week14/260312_\354\210\253\354\236\220\354\225\274\352\265\254.java" @@ -0,0 +1,65 @@ +import java.util.*; +import java.io.*; + +class Main{ + static int result, N; + static boolean[] visited; + public static void main(String[] args) throws IOException{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st; + List list = new ArrayList<>(); + visited = new boolean[10]; + result=0; + + N = Integer.parseInt(br.readLine().trim()); + + for(int i=0; i list, StringBuilder sb, int idx){ + if(sb.length() == 3) { + int cnt = 0; + for(int i=0; i Date: Wed, 11 Mar 2026 19:38:21 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20[=EA=B9=80=EA=B0=80=EB=B9=88][26031?= =?UTF-8?q?2]=20=EC=96=91=EA=B6=81=EB=8C=80=ED=9A=8C=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\352\266\201\353\214\200\355\232\214.java" | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 "\352\271\200\352\260\200\353\271\210/week14/260312_\354\226\221\352\266\201\353\214\200\355\232\214.java" diff --git "a/\352\271\200\352\260\200\353\271\210/week14/260312_\354\226\221\352\266\201\353\214\200\355\232\214.java" "b/\352\271\200\352\260\200\353\271\210/week14/260312_\354\226\221\352\266\201\353\214\200\355\232\214.java" new file mode 100644 index 0000000..33f8cb7 --- /dev/null +++ "b/\352\271\200\352\260\200\353\271\210/week14/260312_\354\226\221\352\266\201\353\214\200\355\232\214.java" @@ -0,0 +1,61 @@ +import java.util.*; +class Solution { + int maxDiff = -1; + int[] best = {-1}; + public int[] solution(int n, int[] info) { + int[] lion = new int[11]; + + dfs(n,0, info, lion); + + return best; + } + + public void dfs(int arrowLeft, int idx, int[] info, int[] lion){ + //모든 점수 칸을 다 본 경우 + if(idx == 11 ) { + //남은 화살들을 다 0점 칸에 몰아줘야 함. + lion[10] += arrowLeft; + + int lionSum = 0, apeachSum=0; + for(int i=0; i 0) { + //이겼을 때 최적화 답 구하기 위함 + if(diff > maxDiff) { + maxDiff = diff; + best = lion.clone(); //배열복사 + } else if (diff == maxDiff){ //같은 경우 낮은 점수 많은 순 + int lionMinTotal = 0, bestMinTotal = 0; + for(int i=10; i>=0; i--){ + lionMinTotal += (i*lion[10-i]); + bestMinTotal += (i*best[10-i]); + } + if(lionMinTotal < bestMinTotal) best = lion.clone(); + } + } + + lion[10] -= arrowLeft; //백트래킹 + return; + } + + //라이언은 이기려면 어피치보다 1점만 높으면 됨. + int need = info[idx]+1; + if(arrowLeft >= need) { + lion[idx] = need; + dfs(arrowLeft-need, idx+1, info, lion); + lion[idx] = 0; //백트래킹 복구 + } + + //점수 포기하는 경우 + dfs(arrowLeft, idx+1, info, lion); + + return; + } + +} \ No newline at end of file