From aaa64a1c947ec55fd76180e0975f9166bbbcbc4c Mon Sep 17 00:00:00 2001 From: ulimy Date: Fri, 5 Aug 2022 23:24:02 +0900 Subject: [PATCH 1/4] =?UTF-8?q?14938=20=EC=84=9C=EA=B0=95=EA=B7=B8?= =?UTF-8?q?=EB=9D=BC=EC=9A=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../14938_java_\354\225\204\353\246\254.java" | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 "6\354\243\274\354\260\250/14938/14938_java_\354\225\204\353\246\254.java" diff --git "a/6\354\243\274\354\260\250/14938/14938_java_\354\225\204\353\246\254.java" "b/6\354\243\274\354\260\250/14938/14938_java_\354\225\204\353\246\254.java" new file mode 100644 index 00000000..d6df22be --- /dev/null +++ "b/6\354\243\274\354\260\250/14938/14938_java_\354\225\204\353\246\254.java" @@ -0,0 +1,65 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.StringTokenizer; + +public class Main { + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int n = Integer.parseInt(st.nextToken()); + int m = Integer.parseInt(st.nextToken()); + int r = Integer.parseInt(st.nextToken()); + + // 각 지역의 아이템 수 + int[] item = new int[n + 1]; + st = new StringTokenizer(br.readLine()); + for (int i = 1; i <= n; i++) { + item[i] = Integer.parseInt(st.nextToken()); + } + + // 각 지역 사이의 길이 + int[][] map = new int[n + 1][n + 1]; + for (int i = 1; i <= n; i++) { + Arrays.fill(map[i], 16); // 최대 15이니 16이면 닿을 수 없는걸로 + map[i][i] = 0; // 자기자신까지의 거리는 0 + } + while (r-- > 0) { + st = new StringTokenizer(br.readLine()); + int a = Integer.parseInt(st.nextToken()); + int b = Integer.parseInt(st.nextToken()); + int l = Integer.parseInt(st.nextToken()); + map[a][b] = l; + map[b][a] = l; + } + + // 플로이드와샬 + for (int k = 1; k <= n; k++) { // 경유지 + for (int i = 1; i <= n; i++) { // 출발지 + for (int j = 1; j <= n; j++) { // 도착지 + // 경유한 것이 직선거리보다 짧다면 갱신! + if (map[k][i] + map[k][j] < map[i][j]) { + map[i][j] = map[k][i] + map[k][j]; + } + } + } + } + + // 결과 구하기 + int result = 0; + for (int i = 1; i <= n; i++) { + int max = 0; + for (int j = 1; j <= n; j++) { + if (map[i][j] <= m) { // 수색범위 이내라면 획득가능! + max += item[j]; + } + } + result = Math.max(result, max); + } + + System.out.println(result); + } +} From 7915e120a9fa7cf8d869971ea34bb473b38aa6be Mon Sep 17 00:00:00 2001 From: ulimy Date: Fri, 5 Aug 2022 23:24:48 +0900 Subject: [PATCH 2/4] =?UTF-8?q?24393=20=EC=A1=B0=EC=BB=A4=20=EC=B0=BE?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../24393_java_\354\225\204\353\246\254.java" | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 "6\354\243\274\354\260\250/24393/24393_java_\354\225\204\353\246\254.java" diff --git "a/6\354\243\274\354\260\250/24393/24393_java_\354\225\204\353\246\254.java" "b/6\354\243\274\354\260\250/24393/24393_java_\354\225\204\353\246\254.java" new file mode 100644 index 00000000..a779819a --- /dev/null +++ "b/6\354\243\274\354\260\250/24393/24393_java_\354\225\204\353\246\254.java" @@ -0,0 +1,65 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.LinkedList; +import java.util.Queue; +import java.util.StringTokenizer; + +public class Main { + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st; + + int N = Integer.parseInt(br.readLine()); + + Queue deck = new LinkedList<>(); + + deck.add(1); // 맨 위에 조커(1) + // 나머지는 일반카드 (0) + for (int i = 0; i < 26; i++) { + deck.add(0); + } + + while (N-- > 0) { + // 1. 13장을 왼쪽으로, 나머지 14장을 오른쪽으로 + Queue leftDeck = new LinkedList<>(); + Queue rightDeck = new LinkedList<>(); + + for (int i = 0; i < 13; i++) { + leftDeck.add(deck.poll()); + } + + for (int i = 0; i < 14; i++) { + rightDeck.add(deck.poll()); + } + + // true -> right , false-> left + boolean turn = true; + st = new StringTokenizer(br.readLine()); + + while (st.hasMoreTokens()) { + int count = Integer.parseInt(st.nextToken()); + + if (turn) { + while (count-- > 0) { + deck.add(rightDeck.poll()); + } + } else { + while (count-- > 0) { + deck.add(leftDeck.poll()); + } + } + + turn = !turn; + } + } + + int result = 1; + while (deck.poll() == 0) { + result++; + } + + System.out.println(result); + } +} From b4c344c73991757377456c64803cec7da488f821 Mon Sep 17 00:00:00 2001 From: ulimy Date: Wed, 10 Aug 2022 11:24:29 +0900 Subject: [PATCH 3/4] 24499 blobyum --- .../24499_java_\354\225\204\353\246\254.java" | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 "7\354\243\274\354\260\250/24499/24499_java_\354\225\204\353\246\254.java" diff --git "a/7\354\243\274\354\260\250/24499/24499_java_\354\225\204\353\246\254.java" "b/7\354\243\274\354\260\250/24499/24499_java_\354\225\204\353\246\254.java" new file mode 100644 index 00000000..3cd842db --- /dev/null +++ "b/7\354\243\274\354\260\250/24499/24499_java_\354\225\204\353\246\254.java" @@ -0,0 +1,46 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class Main { + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int N = Integer.parseInt(st.nextToken()); + int K = Integer.parseInt(st.nextToken()); + + int[] taste = new int[2 * N]; + + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < N; i++) { + taste[i] = Integer.parseInt(st.nextToken()); + } + + // 두바퀴를 돌 일은 없으니 그냥 뒤에 배열 한번 더 붙이기 + for (int i = N; i < 2 * N; i++) { + taste[i] = taste[i - N]; + } + + // 0~K 초기값 설정 + int result = 0; + for (int i = 0; i < K; i++) { + result += taste[i]; + } + + // 이전까지 맛의 합에서 제일 앞 음식의 맛-- 맨 뒤++ + // i가 N이 된 순간 다음 배열로 넘어갔으니(한바퀴 돌았으니) 반복할 필요 없음 + int yammy = result; + for (int i = 0; i < N; i++) { + yammy -= taste[i]; + yammy += taste[i + K]; + + result = Math.max(result, yammy); + } + + System.out.println(result); + + } +} + From 9847cfc591be0edca7c4b055d58b2ba87ee09956 Mon Sep 17 00:00:00 2001 From: ulimy Date: Fri, 19 Aug 2022 23:07:16 +0900 Subject: [PATCH 4/4] =?UTF-8?q?14906=20=EC=8A=A4=EB=9F=AC=ED=94=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../14906_java_\354\225\204\353\246\254.java" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "8\354\243\274\354\260\250/14906/14906_java_\354\225\204\353\246\254.java" diff --git "a/8\354\243\274\354\260\250/14906/14906_java_\354\225\204\353\246\254.java" "b/8\354\243\274\354\260\250/14906/14906_java_\354\225\204\353\246\254.java" new file mode 100644 index 00000000..34b0b382 --- /dev/null +++ "b/8\354\243\274\354\260\250/14906/14906_java_\354\225\204\353\246\254.java" @@ -0,0 +1,70 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.regex.Pattern; + +public class Main { + + private static final Pattern slumpPattern = Pattern.compile("^((D|E)(F)+)+(G)$"); + private static final Pattern slimpPatternABC = Pattern.compile("(AB)\\w+(C)$"); + private static final Pattern slimpPatternAC = Pattern.compile("(A)\\w+(C)$"); + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int count = Integer.parseInt(br.readLine()); + + StringBuilder result = new StringBuilder("SLURPYS OUTPUT\n"); + + while (count-- > 0) { + String input = br.readLine(); + boolean isSlurpy = false; + + // 스림프의 길이는 2 이상이니 2부터 + for (int i = 2; i <= input.length() - 3; i++) { + String slimp = input.substring(0, i); + String slump = input.substring(i); + + // 찾았다면 바로 끝~~ + if (isSlimp(slimp) && isSlump(slump)) { + isSlurpy = true; + break; + } + + } + + result.append(isSlurpy ? "YES\n" : "NO\n"); + + } + + result.append("END OF OUTPUT"); + + System.out.println(result); + + } + + private static boolean isSlump(String input) { + return slumpPattern.matcher(input).matches(); + } + + private static boolean isSlimp(String input) { + + if (input.length() > 3) { + + // AB - C라면 가운데 스림프인지 확인 + if (slimpPatternABC.matcher(input).matches()) { + return isSlimp(input.substring(2, input.length() - 1)); + } + + // A - C 라면 가운데 스림프인지 확인 + else if (slimpPatternAC.matcher(input).matches()) { + return isSlump(input.substring(1, input.length() - 1)); + } + + } else { + return input.equals("AH"); + } + + return false; + } +} +