From 783c280a6a0d6d978def454e4493649e44ab6dea Mon Sep 17 00:00:00 2001 From: HongYejin <33932851+YeJinHong@users.noreply.github.com> Date: Sat, 1 Apr 2023 13:24:11 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Create=20PRG=5F=EC=B9=B4=ED=8E=AB.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PRG_\354\271\264\355\216\253.java" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "\355\231\215\354\230\210\354\247\204/PRG_\354\271\264\355\216\253.java" diff --git "a/\355\231\215\354\230\210\354\247\204/PRG_\354\271\264\355\216\253.java" "b/\355\231\215\354\230\210\354\247\204/PRG_\354\271\264\355\216\253.java" new file mode 100644 index 0000000..65aba19 --- /dev/null +++ "b/\355\231\215\354\230\210\354\247\204/PRG_\354\271\264\355\216\253.java" @@ -0,0 +1,29 @@ +class Solution { + public int cal(int i, int brown, int yellow){ + return i*i - i*(brown + 4)/2 + yellow + brown; + } + public int[] solution(int brown, int yellow) { + int[] answer = new int[2]; + // 테두리 1줄 => brown = 2n+2m - 4 + // yellow = n*m - brown = (n-2)*(m-2) = n*m -2(n+m) + 4 + // n(세로) <= m (가로) + // n+m = (brown + 4)/2 + // n*m = yellow + brown = n* ((brown + 4)/2 - n) = -n^2 + n(brown+4)/2 + // n^2 - n(brown+4)/2 + yellow + brown = 0; + // n = (n(brown+4)/2 + root((n(brown+4)/2)^2 -4*(yellow+brown)))/2 + int n = 1; + int m = 1; + for(int i = 1; i < 2000000; i++){ + if(cal(i, brown, yellow) == 0){ + n = i; + m = (brown+4)/2 - n; + break; + } + } + + answer[0] = m; + answer[1] = n; + + return answer; + } +} From 4947ea49c268f7668a0b5e8b79c2ac7cd2687fc7 Mon Sep 17 00:00:00 2001 From: HongYejin <33932851+YeJinHong@users.noreply.github.com> Date: Sat, 15 Apr 2023 13:08:34 +0900 Subject: [PATCH 2/2] =?UTF-8?q?add=20PRG=5F=EC=A1=B0=EC=9D=B4=EC=8A=A4?= =?UTF-8?q?=ED=8B=B1.java,=20not=20solved?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\235\264\354\212\244\355\213\261.java" | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 "\355\231\215\354\230\210\354\247\204/PRG_\354\241\260\354\235\264\354\212\244\355\213\261.java" diff --git "a/\355\231\215\354\230\210\354\247\204/PRG_\354\241\260\354\235\264\354\212\244\355\213\261.java" "b/\355\231\215\354\230\210\354\247\204/PRG_\354\241\260\354\235\264\354\212\244\355\213\261.java" new file mode 100644 index 0000000..45646ec --- /dev/null +++ "b/\355\231\215\354\230\210\354\247\204/PRG_\354\241\260\354\235\264\354\212\244\355\213\261.java" @@ -0,0 +1,43 @@ +import java.util.Arrays; + +// 정확성 70. +class Solution { + public int solution(String name) { + int answer = 0; + + char[] temp = new char[name.length()]; + Arrays.fill(temp, 'A'); + + int idx = 0; + while (true) { + char target = name.charAt(idx); + if (temp[idx] != target) { + answer += Math.min(target - 'A', 'Z' - target + 1); + temp[idx] = target; + } + // System.out.println(Arrays.toString(temp)); + + if (String.valueOf(temp).equals(name)) + break; + + for (int i = 1; i < name.length(); i++) { + int right = (idx + i) % name.length(); + int left = (idx + (name.length() - 1) * i) % name.length(); + + if (temp[right] != name.charAt(right)) { + if(right > idx) answer += right - idx; + else answer += name.length() - right + idx; + idx = right; + break; + } else if (temp[left] != name.charAt(left)) { + if(left < idx) answer += idx - left; + else answer += name.length() - left + idx; + idx = left; + break; + } + } + } + + return answer; + } +}