From 0a2333aa7d75b8874c1ba723cca17a63c54d46ef Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月14日 09:48:00 +0900 Subject: [PATCH 01/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[CT]=20?= =?UTF-8?q?=ED=85=8C=ED=8A=B8=EB=A6=AC=EC=8A=A4=20=EB=B8=94=EB=9F=AD=20?= =?UTF-8?q?=EC=95=88=EC=9D=98=20=ED=95=A9=20=EC=B5=9C=EB=8C=80=ED=99=94=20?= =?UTF-8?q?=ED=95=98=EA=B8=B0=5F241014?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...355231円224円_355円225円230円352円270円260円.java" | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 "CodeTree/2017-2018353円205円204円/DH_355円205円214円355円212円270円353円246円254円354円212円244円_353円270円224円353円237円255円_354円225円210円354円235円230円_355円225円251円_354円265円234円353円214円200円355円231円224円_355円225円230円352円270円260円.java" diff --git "a/CodeTree/2017-2018353円205円204円/DH_355円205円214円355円212円270円353円246円254円354円212円244円_353円270円224円353円237円255円_354円225円210円354円235円230円_355円225円251円_354円265円234円353円214円200円355円231円224円_355円225円230円352円270円260円.java" "b/CodeTree/2017-2018353円205円204円/DH_355円205円214円355円212円270円353円246円254円354円212円244円_353円270円224円353円237円255円_354円225円210円354円235円230円_355円225円251円_354円265円234円353円214円200円355円231円224円_355円225円230円352円270円260円.java" new file mode 100644 index 00000000..0ccbf590 --- /dev/null +++ "b/CodeTree/2017-2018353円205円204円/DH_355円205円214円355円212円270円353円246円254円354円212円244円_353円270円224円353円237円255円_354円225円210円354円235円230円_355円225円251円_354円265円234円353円214円200円355円231円224円_355円225円230円352円270円260円.java" @@ -0,0 +1,88 @@ +import java.io.*; +import java.util.*; + +public class DH_테트리스_블럭_안의_합_최대화_하기 { + static int N, M, result, max; + static int[][] map; + // 중복을 최대한 줄여주기 위해 상, 좌, 우 방향만 사용 + static int[] dr = {0, 1, 0}, dc = {-1, 0, 1}; + static boolean[][] v; + + static void solution() { + // dfs 과정에서 원상복구 되기 때문에 + // 새로 생성하지 않아도 됨 + // dfs를 할 때마다 new boolean을 한다면 메모리 초과 발생 + v = new boolean[N][M]; + + for(int r = 0; r < N; r++) { + for(int c = 0; c < M; c++) { + // r, c 지점에서 dfs 시작 + v[r][c] = true; + dfs(r, c, map[r][c], 0); + v[r][c] = false; + + } + } + + System.out.println(result); + } + + static void dfs(int r, int c, int sum, int depth) { + // 현재까지의 합 + (전체 - 남은 depth 값) * map에서 최대값 <= result라면 + // 현재 r, c 지점에서 남은 depth값 보다 더 dfs를 하더라도 최대값이 될 수 없으므로 + // return + if(sum + (3 - depth) * max <= result) return; + // depth가 3이라면 return + if(depth == 3) { + result = Math.max(result, sum); + return; + } + + for(int d = 0; d < 3; d++) { + int nr = r + dr[d]; + int nc = c + dc[d]; + + if(!check(nr, nc) || v[nr][nc]) continue; + + // T자형 블럭을 만들어주기 위한 부분 + // nr, nc 지점은 갔다고 방문 체크해주고 + // 다음 위치 값은 nr, nc가 아닌 r, c로 설정해주기 + if(depth == 1) { + v[nr][nc] = true; + dfs(r, c, sum + map[nr][nc], depth + 1); + v[nr][nc] = false; + } + + // T자 외의 부분을 만들어 주기 위한 부분 + v[nr][nc] = true; + dfs(nr, nc, sum + map[nr][nc], depth + 1); + v[nr][nc] = false; + } + + } + + static boolean check(int r, int c) { + return r>= 0 && r < N && c>= 0 && c < M; + } + public static void main(String[] args) throws Exception { + initInput(); + solution(); + } + + static void initInput() throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + N = Integer.parseInt(st.nextToken()); + M = Integer.parseInt(st.nextToken()); + + map = new int[N][M]; + for(int r = 0; r < N; r++) { + st = new StringTokenizer(br.readLine()); + for(int c = 0; c < M; c++) { + map[r][c] = Integer.parseInt(st.nextToken()); + max = Math.max(map[r][c], max); + } + } + } +} From e3d36e886f4a2fdd3139f53b2ad48010d579c2c6 Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月15日 10:26:24 +0900 Subject: [PATCH 02/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[BOJ]=2021?= =?UTF-8?q?10=20=EA=B3=B5=EC=9C=A0=EA=B8=B0=20=EC=84=A4=EC=B9=98=5F241015?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/DH_2110.java" | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/DH_2110.java" diff --git "a/BOJ/1000-5000353円262円210円/DH_2110.java" "b/BOJ/1000-5000353円262円210円/DH_2110.java" new file mode 100644 index 00000000..22e34f8a --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/DH_2110.java" @@ -0,0 +1,57 @@ +import java.io.*; +import java.util.*; + +/* + * 공유기 설치 + */ + +public class BOJ2110 { + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int N = Integer.parseInt(st.nextToken()); // 집의 개수 + int C = Integer.parseInt(st.nextToken()); // 공유기의 개수 + + int[] arr = new int[N]; // 집의 좌표 저장 + for(int i = 0; i < N; i++) arr[i] = Integer.parseInt(br.readLine()); + + Arrays.sort(arr); + + // 공유기 C개 설치 + // 가장 인접한 두 공유기 사이의 거리를 가능한 크게 설치하려고 함 + // 두 공유기의 사이의 거리를 최대로 하는 프로그램 작성 + int s = 0, e = arr[N - 1] + 1; + + int result = 0; + // upperBound 구하기 + while(s < e) { + int m = (s + e) / 2; // 공유기 사이 거리 + int cnt = getCnt(m, arr); // 설치해야되는 공유기 개수 구하기 + + // 설치한 공유기 개수가 필요한 것보다 많다면 거리 늘리기 + if(cnt>= C) { + result = m; + s = m + 1; + } else { + e = m; + } + } + + System.out.println(result); + } + + // 설치해야 하는 공유기의 개수를 구하는 함수 + static int getCnt(int m, int[] arr) { + int result = 1; + int prev = arr[0]; + + for(int i = 1; i < arr.length; i++) { + if(arr[i] - prev>= m) { + result++; + prev = arr[i]; + } + } + return result; + } +} From 88177550371bf1b5098f157d477b05629890960b Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月15日 10:26:41 +0900 Subject: [PATCH 03/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[BOJ]=2028?= =?UTF-8?q?05=20=EB=82=98=EB=AC=B4=20=EC=9E=90=EB=A5=B4=EA=B8=B0=5F241015?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/DH_2805.java" | 69 ++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/DH_2805.java" diff --git "a/BOJ/1000-5000353円262円210円/DH_2805.java" "b/BOJ/1000-5000353円262円210円/DH_2805.java" new file mode 100644 index 00000000..68520afc --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/DH_2805.java" @@ -0,0 +1,69 @@ +import java.io.*; +import java.util.*; + +/* + * 나무 자르기 + */ + +public class BOJ2805 { + public static void main(String[] args) throws Exception { + 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()); // 적어도 M 미터의 나무를 집에 가져가기 위해 설정할 수 있는 높이의 최댓값 + + // 1 <= M <= 2_000_000_000이기 때문에 long 으로 설정 + long[] arr = new long[N]; + st = new StringTokenizer(br.readLine()); + + for(int i = 0; i < arr.length; i++) arr[i] = Long.parseLong(st.nextToken()); + + Arrays.sort(arr); + + // 누적합 저장 + // 잘린 나무들의 합을 구해야 되는데, 반복문을 사용한다면 + // 시간 초과가 발생할 수 있을 것이라 판단하여 누적합 사용 + long[] sum = new long[N + 1]; + for(int i = 0; i < N; i++) { + sum[i + 1] = sum[i]+ arr[i]; + } + + // 절단기에 설정할 수 있는 높이의 최댓값 + // 많이 잘라야 됨 - upperIdx구하기 + long s = 0, e = arr[N - 1] + 1; + long result = 0; + + while(s < e) { + long m = (s + e) / 2; + // m이 있을 수 있는 가장 오른쪽 idx 반환 + int cutStartIdx = getUpperIdx(arr, m); + // 잘린 나무들의 합 구하기 + long cutSum = (sum[N] - sum[cutStartIdx]) - (N - cutStartIdx) * m; + + if(cutSum>= M) { + // 만약 s = 1, e = 5 일 경우 + // 이후 s는 4가 되기 때문에 result 값을 저장해줘야 함 + result = m; + s = m + 1; + } else { + e = m; + } + } + + System.out.println(result); + } + + // target이 있을 수 있는 가장 오른쪽 idx 반환 + static int getUpperIdx(long[] arr, long target) { + int s = 0, e = arr.length; + + while(s < e) { + int m = (s + e) / 2; + + if(arr[m] <= target) s = m + 1; + else e = m; + } + return s; + } +} From 2206d94179c7c62fdc2780237a16f2bb806ad98a Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月16日 10:38:56 +0900 Subject: [PATCH 04/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[BOJ]=2075?= =?UTF-8?q?79=20=EC=95=B1=5F241016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/5001-10000353円262円210円/DH_7579.java" | 66 +++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 "BOJ/5001-10000353円262円210円/DH_7579.java" diff --git "a/BOJ/5001-10000353円262円210円/DH_7579.java" "b/BOJ/5001-10000353円262円210円/DH_7579.java" new file mode 100644 index 00000000..cfd2d7ab --- /dev/null +++ "b/BOJ/5001-10000353円262円210円/DH_7579.java" @@ -0,0 +1,66 @@ +import java.io.*; +import java.util.*; + +/* + * 앱 + */ + +public class DH_7579 { + static class App { + int m, c; + + public App(int m, int c) { + this.m = m; + this.c = c; + } + } + public static void main(String[] args) throws Exception { + 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()); // 추가 확보해야되는 메모리 + + App[] apps = new App[N + 1]; + for(int i = 0; i < apps.length; i++) apps[i] = new App(0, 0); + st = new StringTokenizer(br.readLine()); + + for(int i = 1; i < apps.length; i++) { + apps[i].m = Integer.parseInt(st.nextToken()); + } + + st = new StringTokenizer(br.readLine()); + + int costSum = 0; + for(int i = 1; i < apps.length; i++) { + apps[i].c = Integer.parseInt(st.nextToken()); + costSum += apps[i].c; + } + + // 메모리 M바이트를 확보하기 위한 앱 비활성화 최소 비용을 찾기 위한 dp 배열 + // j원일 때 최대 몇 바이트까지 확보할 수 있는지 저장 + int[][] knapsack = new int[N + 1][costSum + 1]; + + for(int i = 1; i < knapsack.length; i++) { + // 0 포함시켜줘야 함! + for(int c = 0; c < knapsack[0].length; c++) { + if(c - apps[i].c>= 0) { + knapsack[i][c] = Math.max(knapsack[i - 1][c - apps[i].c] + apps[i].m, knapsack[i - 1][c]); + } else { + knapsack[i][c] = knapsack[i - 1][c]; + } + } + } + + int result = 0; + // 최대 확보할 수 있는 dp 배열의 정보까지 확인 + for(int c = 1; c < knapsack[0].length; c++) { + if(knapsack[N][c]>= M) { + result = c; + break; + } + } + + System.out.println(result); + } +} From 830c013d524b94c6b495bce778652bb83b7e0c3a Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月16日 12:58:45 +0900 Subject: [PATCH 05/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[BOJ]=2090?= =?UTF-8?q?84=20=EB=8F=99=EC=A0=84=5F241016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/5001-10000353円262円210円/DH_9084.java" | 39 +++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 "BOJ/5001-10000353円262円210円/DH_9084.java" diff --git "a/BOJ/5001-10000353円262円210円/DH_9084.java" "b/BOJ/5001-10000353円262円210円/DH_9084.java" new file mode 100644 index 00000000..4a55ed58 --- /dev/null +++ "b/BOJ/5001-10000353円262円210円/DH_9084.java" @@ -0,0 +1,39 @@ +import java.io.*; +import java.util.*; + +/* + * 동전 + */ + +public class BOJ9084 { + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st; + + int T = Integer.parseInt(br.readLine()); + + StringBuilder sb = new StringBuilder(); + for(int tc = 0; tc < T; tc++) { + int N = Integer.parseInt(br.readLine()); // 동전의 가지 수 + int[] coin = new int[N]; + + st = new StringTokenizer(br.readLine()); + for(int i = 0; i < coin.length; i++) coin[i] = Integer.parseInt(st.nextToken()); + + int M = Integer.parseInt(br.readLine()); + int[] dp = new int[M + 1]; // M원을 만들 수 있는 경우의 수 저장하는 배열 + + dp[0] = 1; // 0원을 만드는 경우는 모든 동전을 사용하지 않는 경우이므로 한 가지임 + for(int c: coin) { + for(int i = 0; i < dp.length; i++) { + if(i - c < 0) continue; + dp[i] += dp[i - c]; + } + } + + sb.append(dp[M] + "\n"); + } + + System.out.println(sb); + } +} From 7908b54256493f87d3012fb5140a0c407f8de976 Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月17日 19:26:41 +0900 Subject: [PATCH 06/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[PG]=20432?= =?UTF-8?q?38=20=EC=9E=85=EA=B5=AD=EC=8B=AC=EC=82=AC=5F241017?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Programmers/Level3/DH_43238.java | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Programmers/Level3/DH_43238.java diff --git a/Programmers/Level3/DH_43238.java b/Programmers/Level3/DH_43238.java new file mode 100644 index 00000000..e529e998 --- /dev/null +++ b/Programmers/Level3/DH_43238.java @@ -0,0 +1,37 @@ +import java.util.*; + +/* +입국심사 + */ + +class DH_43238 { + public long solution(int n, int[] times) { + long answer = 0; + + // 입국 심사 기간이 주어졌을 때 + // 가장 오래 걸리는 시간을 구하기 위해 정렬해줌 + Arrays.sort(times); + + int length = times.length; + long s = 1, e = times[length - 1] * (long) n + 1; // 시간초 + while(s < e) { + long m = (s + e) / 2; + + // m 시간일 때, 가능한 사람 수 + long peopleCnt = getPeopleCnt(m, times); + + if(peopleCnt < n) s = m + 1; + else e = m; + } + + return s; + } + + static long getPeopleCnt(long time, int[] times) { + long peopleCnt = 0; + + for(long t: times) peopleCnt += time / t; + + return peopleCnt; + } +} \ No newline at end of file From 1f8497f9ce28af0844beba1f1766dc188eb4c8ed Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月17日 19:42:52 +0900 Subject: [PATCH 07/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[SQL]=20?= =?UTF-8?q?=EB=8C=80=EC=9E=A5=EA=B7=A0=EC=9D=98=20=ED=81=AC=EA=B8=B0?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EB=B6=84=EB=A5=98=ED=95=98?= =?UTF-8?q?=EA=B8=B01=5F241003?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...35274円 353円266円204円353円245円230円355円225円230円352円270円260円 1.sql" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "SQL/04354円243円274円354円260円250円/353円214円200円354円236円245円352円267円240円354円235円230円 355円201円254円352円270円260円354円227円220円 353円224円260円353円235円274円 353円266円204円353円245円230円355円225円230円352円270円260円 1.sql" => "SQL/04354円243円274円354円260円250円/DH_353円214円200円354円236円245円352円267円240円354円235円230円 355円201円254円352円270円260円354円227円220円 353円224円260円353円235円274円 353円266円204円353円245円230円355円225円230円352円270円260円 1.sql" (100%) diff --git "a/SQL/04354円243円274円354円260円250円/353円214円200円354円236円245円352円267円240円354円235円230円 355円201円254円352円270円260円354円227円220円 353円224円260円353円235円274円 353円266円204円353円245円230円355円225円230円352円270円260円 1.sql" "b/SQL/04354円243円274円354円260円250円/DH_353円214円200円354円236円245円352円267円240円354円235円230円 355円201円254円352円270円260円354円227円220円 353円224円260円353円235円274円 353円266円204円353円245円230円355円225円230円352円270円260円 1.sql" similarity index 100% rename from "SQL/04354円243円274円354円260円250円/353円214円200円354円236円245円352円267円240円354円235円230円 355円201円254円352円270円260円354円227円220円 353円224円260円353円235円274円 353円266円204円353円245円230円355円225円230円352円270円260円 1.sql" rename to "SQL/04354円243円274円354円260円250円/DH_353円214円200円354円236円245円352円267円240円354円235円230円 355円201円254円352円270円260円354円227円220円 353円224円260円353円235円274円 353円266円204円353円245円230円355円225円230円352円270円260円 1.sql" From 6f29099cf6f14bb4dbce72b70b7dc1d9aecbc483 Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月17日 19:44:16 +0900 Subject: [PATCH 08/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[SQL]=20?= =?UTF-8?q?=EB=AC=BC=EA=B3=A0=EA=B8=B0=20=EC=A2=85=EB=A5=98=20=EB=B3=84=20?= =?UTF-8?q?=EC=9E=A1=EC=9D=80=20=EC=88=98=20=EA=B5=AC=ED=95=98=EA=B8=B0=5F?= =?UTF-8?q?241008?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...00 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 "SQL/05354円243円274円354円260円250円/DH_353円254円274円352円263円240円352円270円260円 354円242円205円353円245円230円 353円263円204円 354円236円241円354円235円200円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" diff --git "a/SQL/05354円243円274円354円260円250円/DH_353円254円274円352円263円240円352円270円260円 354円242円205円353円245円230円 353円263円204円 354円236円241円354円235円200円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" "b/SQL/05354円243円274円354円260円250円/DH_353円254円274円352円263円240円352円270円260円 354円242円205円353円245円230円 353円263円204円 354円236円241円354円235円200円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" new file mode 100644 index 00000000..8b3f1c2c --- /dev/null +++ "b/SQL/05354円243円274円354円260円250円/DH_353円254円274円352円263円240円352円270円260円 354円242円205円353円245円230円 353円263円204円 354円236円241円354円235円200円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" @@ -0,0 +1,5 @@ +SELECT COUNT(*) AS `FISH_COUNT`, B.FISH_NAME `FISH_NAME` +FROM FISH_INFO A + LEFT JOIN FISH_NAME_INFO B ON A.FISH_TYPE = B.FISH_TYPE +GROUP BY FISH_NAME +ORDER BY FISH_COUNT DESC \ No newline at end of file From 9746f3aba951702920bd1083db17b228afc86c53 Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月17日 19:44:30 +0900 Subject: [PATCH 09/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[SQL]=20?= =?UTF-8?q?=EC=9B=94=EB=B3=84=20=EC=9E=A1=EC=9D=80=20=EB=AC=BC=EA=B3=A0?= =?UTF-8?q?=EA=B8=B0=20=EC=88=98=20=EA=B5=AC=ED=95=98=EA=B8=B0=5F241010?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...260 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 "SQL/05354円243円274円354円260円250円/DH_354円233円224円353円263円204円 354円236円241円354円235円200円 353円254円274円352円263円240円352円270円260円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" diff --git "a/SQL/05354円243円274円354円260円250円/DH_354円233円224円353円263円204円 354円236円241円354円235円200円 353円254円274円352円263円240円352円270円260円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" "b/SQL/05354円243円274円354円260円250円/DH_354円233円224円353円263円204円 354円236円241円354円235円200円 353円254円274円352円263円240円352円270円260円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" new file mode 100644 index 00000000..bcb85a9b --- /dev/null +++ "b/SQL/05354円243円274円354円260円250円/DH_354円233円224円353円263円204円 354円236円241円354円235円200円 353円254円274円352円263円240円352円270円260円 354円210円230円 352円265円254円355円225円230円352円270円260円.sql" @@ -0,0 +1,4 @@ +SELECT COUNT(*) `FISH_COUNT`, MONTH(TIME) `MONTH` +FROM FISH_INFO +GROUP BY MONTH +ORDER BY MONTH ASC \ No newline at end of file From 44b5fd56864cadda65f232a22f03b14eef4f66d2 Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月17日 19:45:29 +0900 Subject: [PATCH 10/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[SQL]=20?= =?UTF-8?q?=EC=9E=88=EC=97=88=EB=8A=94=EB=8D=B0=EC=9A=94=20=EC=97=86?= =?UTF-8?q?=EC=97=88=EC=8A=B5=EB=8B=88=EB=8B=A4=5F241015?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7206円354円227円210円354円212円265円353円213円210円353円213円244円.sql" | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 "SQL/06354円243円274円354円260円250円/DH_354円236円210円354円227円210円353円212円224円353円215円260円354円232円224円 354円227円206円354円227円210円354円212円265円353円213円210円353円213円244円.sql" diff --git "a/SQL/06354円243円274円354円260円250円/DH_354円236円210円354円227円210円353円212円224円353円215円260円354円232円224円 354円227円206円354円227円210円354円212円265円353円213円210円353円213円244円.sql" "b/SQL/06354円243円274円354円260円250円/DH_354円236円210円354円227円210円353円212円224円353円215円260円354円232円224円 354円227円206円354円227円210円354円212円265円353円213円210円353円213円244円.sql" new file mode 100644 index 00000000..b4c178d8 --- /dev/null +++ "b/SQL/06354円243円274円354円260円250円/DH_354円236円210円354円227円210円353円212円224円353円215円260円354円232円224円 354円227円206円354円227円210円354円212円265円353円213円210円353円213円244円.sql" @@ -0,0 +1,4 @@ +SELECT A.ANIMAL_ID, A.NAME +FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID +WHERE A.DATETIME> B.DATETIME +ORDER BY A.DATETIME \ No newline at end of file From bd730ca504fd753b0186d84c8740074f87903f51 Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月17日 20:14:39 +0900 Subject: [PATCH 11/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[SQL]=20?= =?UTF-8?q?=EC=98=A4=EB=9E=9C=20=EA=B8=B0=EA=B0=84=20=EB=B3=B4=ED=98=B8?= =?UTF-8?q?=ED=95=9C=20=EB=8F=99=EB=AC=BC(1)=5F241017?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0270円355円225円234円 353円217円231円353円254円274円(1).sql" | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 "SQL/06354円243円274円354円260円250円/DH_354円230円244円353円236円234円 352円270円260円352円260円204円 353円263円264円355円230円270円355円225円234円 353円217円231円353円254円274円(1).sql" diff --git "a/SQL/06354円243円274円354円260円250円/DH_354円230円244円353円236円234円 352円270円260円352円260円204円 353円263円264円355円230円270円355円225円234円 353円217円231円353円254円274円(1).sql" "b/SQL/06354円243円274円354円260円250円/DH_354円230円244円353円236円234円 352円270円260円352円260円204円 353円263円264円355円230円270円355円225円234円 353円217円231円353円254円274円(1).sql" new file mode 100644 index 00000000..ad6fad00 --- /dev/null +++ "b/SQL/06354円243円274円354円260円250円/DH_354円230円244円353円236円234円 352円270円260円352円260円204円 353円263円264円355円230円270円355円225円234円 353円217円231円353円254円274円(1).sql" @@ -0,0 +1,11 @@ +# SELECT A.NAME, A.DATETIME +# FROM ANIMAL_INS A +# WHERE A.ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS) +# ORDER BY A.DATETIME +# LIMIT 3 + +SELECT A.NAME, A.DATETIME +FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID +WHERE B.DATETIME IS NULL +ORDER BY A.DATETIME +LIMIT 3 \ No newline at end of file From cafebef29a94dd684e9ece114c9a04751fa9b66b Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月17日 20:42:28 +0900 Subject: [PATCH 12/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[SQL]=20?= =?UTF-8?q?=EB=B3=B4=ED=98=B8=EC=86=8C=EC=97=90=EC=84=9C=20=EC=A4=91?= =?UTF-8?q?=EC=84=B1=ED=99=94=ED=95=9C=20=EB=8F=99=EB=AC=BC=5F241017?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...355231円224円355円225円234円 353円217円231円353円254円274円.sql" | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 "SQL/06354円243円274円354円260円250円/DH_353円263円264円355円230円270円354円206円214円354円227円220円354円204円234円 354円244円221円354円204円261円355円231円224円355円225円234円 353円217円231円353円254円274円.sql" diff --git "a/SQL/06354円243円274円354円260円250円/DH_353円263円264円355円230円270円354円206円214円354円227円220円354円204円234円 354円244円221円354円204円261円355円231円224円355円225円234円 353円217円231円353円254円274円.sql" "b/SQL/06354円243円274円354円260円250円/DH_353円263円264円355円230円270円354円206円214円354円227円220円354円204円234円 354円244円221円354円204円261円355円231円224円355円225円234円 353円217円231円353円254円274円.sql" new file mode 100644 index 00000000..55346555 --- /dev/null +++ "b/SQL/06354円243円274円354円260円250円/DH_353円263円264円355円230円270円354円206円214円354円227円220円354円204円234円 354円244円221円354円204円261円355円231円224円355円225円234円 353円217円231円353円254円274円.sql" @@ -0,0 +1,9 @@ +SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME +FROM ANIMAL_INS A + LEFT JOIN ANIMAL_OUTS B + ON A.ANIMAL_ID = B.ANIMAL_ID +WHERE + A.SEX_UPON_INTAKE LIKE 'Intact%' + AND + B.SEX_UPON_OUTCOME NOT LIKE 'Intact%' +ORDER BY A.ANIMAL_ID ASC \ No newline at end of file From 5a6e60cac625cd3fe9a7803b03d8caf07d2475f9 Mon Sep 17 00:00:00 2001 From: KodaHye Date: 2024年10月18日 09:44:50 +0900 Subject: [PATCH 13/13] =?UTF-8?q?=EA=B3=A0=EB=8B=A4=ED=98=9C:=20[PG]=20428?= =?UTF-8?q?61=20=EC=84=AC=20=EC=97=B0=EA=B2=B0=ED=95=98=EA=B8=B0=5F241018?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Programmers/Level3/DH_42861.java | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Programmers/Level3/DH_42861.java diff --git a/Programmers/Level3/DH_42861.java b/Programmers/Level3/DH_42861.java new file mode 100644 index 00000000..f03a8b7c --- /dev/null +++ b/Programmers/Level3/DH_42861.java @@ -0,0 +1,69 @@ +import java.util.*; + +/* +섬 연결하기 + */ + +class DH_42861 { + + static class Edge implements Comparable { + int s, e, w; + public Edge(int s, int e, int w) { + this.s = s; + this.e = e; + this.w = w; + } + + @Override + public int compareTo(Edge o) { + return Integer.compare(this.w, o.w); + } + } + + static int[] p; + static PriorityQueue q; + + static int mst() { + int cnt = 0, result = 0; + + // 간선이 N - 1개 만들어질 때까지 진행 + while(!q.isEmpty() && cnt < (p.length - 1) - 1) { + Edge current = q.poll(); + + if(find(current.s) == find(current.e)) continue; + union(current.s, current.e); + result += current.w; + } + + return result; + } + + static void union(int a, int b) { + a = find(a); + b = find(b); + + if(a != b) p[b] = a; + } + + static int find(int a) { + return p[a] = a == p[a] ? a: find(p[a]); + } + + public int solution(int n, int[][] costs) { + q = new PriorityQueue(); + p = new int[n + 1]; + for(int i = 0; i < p.length; i++) p[i] = i; + + for(int[] c: costs) { + int s = c[0]; + int e = c[1]; + int w = c[2]; + + // Queue에 Edge 저장 + q.add(new Edge(s, e, w)); + q.add(new Edge(e, s, w)); + } + + return mst(); + } +} \ No newline at end of file

AltStyle によって変換されたページ (->オリジナル) /