From 24932aec967c651798aea7e2f381777db89d9b34 Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月16日 15:14:58 +0900 Subject: [PATCH 1/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[CT]=20?= =?UTF-8?q?=EC=9C=B7=EB=86=80=EC=9D=B4=20=EC=82=AC=EA=B8=B0=EB=8B=A8=5F241?= =?UTF-8?q?216?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...354円202円254円352円270円260円353円213円250円.java" | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 "CodeTree/2019-2020353円205円204円/JW_354円234円267円353円206円200円354円235円264円_354円202円254円352円270円260円353円213円250円.java" diff --git "a/CodeTree/2019-2020353円205円204円/JW_354円234円267円353円206円200円354円235円264円_354円202円254円352円270円260円353円213円250円.java" "b/CodeTree/2019-2020353円205円204円/JW_354円234円267円353円206円200円354円235円264円_354円202円254円352円270円260円353円213円250円.java" new file mode 100644 index 00000000..c1e69ab9 --- /dev/null +++ "b/CodeTree/2019-2020353円205円204円/JW_354円234円267円353円206円200円354円235円264円_354円202円254円352円270円260円353円213円250円.java" @@ -0,0 +1,116 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.StringTokenizer; + +public class JW_윷놀이_사기단 { + + static ArrayList> routes = new ArrayList(); // 보드 + + static int[] moves = new int[10]; + static int[] turns = new int[10]; + static int[][] horses; + static int maxScore = 0; + + // 보드 하드 코딩 + static { + for (int i = 0; i < 4; i++) { + routes.add(new ArrayList()); + } + for (int i = 0; i <= 40; i += 2) { + routes.get(0).add(i); + } + for (int i = 0; i <= 15; i++) { + if (i <= 5) { + routes.get(1).add(routes.get(0).get(i)); + routes.get(2).add(routes.get(0).get(i)); + routes.get(3).add(routes.get(0).get(i)); + } else if (i <= 10) { + routes.get(2).add(routes.get(0).get(i)); + routes.get(3).add(routes.get(0).get(i)); + } else { + routes.get(3).add(routes.get(0).get(i)); + } + } + routes.get(1).add(13); + routes.get(1).add(16); + routes.get(1).add(19); + routes.get(2).add(22); + routes.get(2).add(24); + routes.get(3).add(28); + routes.get(3).add(27); + routes.get(3).add(26); + for (int i = 25; i <= 40; i += 5) { + routes.get(1).add(i); + routes.get(2).add(i); + routes.get(3).add(i); + } + routes.get(0).add(0); + routes.get(1).add(0); + routes.get(2).add(0); + routes.get(3).add(0); + } + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + for (int i = 0; i < 10; i++) + moves[i] = Integer.parseInt(st.nextToken()); + recursive(0); + System.out.println(maxScore); + } + + // 움직일 순서 저장 + private static void recursive(int depth) { + if (depth == 10) { + move(); // 움직임, 점수 계산 + return; + } + for (int i = 0; i < 4; i++) { + turns[depth] = i; + recursive(depth + 1); + } + } + + private static void move() { + int score = 0; + horses = new int[4][2]; + for (int i = 0; i < 10; i++) { + int turn = turns[i]; + horses[turn][1] += moves[i]; + // 최대 길이를 초과할 시 + if (horses[turn][1]>= routes.get(horses[turn][0]).size()) + horses[turn][1] = routes.get(horses[turn][0]).size() - 1; + // 루트 변경 조건 + if (horses[turn][0] == 0 && (horses[turn][1] == 5 || horses[turn][1] == 10 || horses[turn][1] == 15)) { + horses[turn][0] = horses[turn][1] / 5; + } + // 움직임이 가능하지 않다면 백트래킹하기 위해 돌아감 + if (!isPossible(turn)) + return; + int route = horses[turn][0]; + int pos = horses[turn][1]; + score += routes.get(route).get(pos); + } + maxScore = Math.max(maxScore, score); + } + + // 말이 이동할 수 없는지 확인 + private static boolean isPossible(int turn) { + for (int i = 0; i < 4; i++) { + if (i == turn) + continue; + // 같은 루트에 같은 곳 + if (horses[turn][0] == horses[i][0]) + if (horses[turn][1] != routes.get(horses[turn][0]).size() - 1 && horses[turn][1] == horses[i][1]) + return false; + int A = routes.get(horses[turn][0]).get(horses[turn][1]); + int B = routes.get(horses[i][0]).get(horses[i][1]); + // 도착 직전에 겹치는 곳 + if (A == B) + if (A == 25 || A == 30 || A == 35 || A == 40) + return false; + } + return true; + } +} \ No newline at end of file From 7ac1bd921e87bfd6d190e17efa1003f8852d0bc1 Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月17日 09:30:23 +0900 Subject: [PATCH 2/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[BOJ]=201992?= =?UTF-8?q?=20=EC=BF=BC=EB=93=9C=ED=8A=B8=EB=A6=AC=5F241217?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/JW_1992.java" | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/JW_1992.java" diff --git "a/BOJ/1000-5000353円262円210円/JW_1992.java" "b/BOJ/1000-5000353円262円210円/JW_1992.java" new file mode 100644 index 00000000..a8362398 --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/JW_1992.java" @@ -0,0 +1,44 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; + +public class JW_1992 { + + static char[][] board; + static StringBuilder sb = new StringBuilder(); + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int n = Integer.parseInt(br.readLine()); + board = new char[n][n]; + for (int i = 0; i < n; i++) + board[i] = br.readLine().toCharArray(); + // 압축 + quardTree(n, 0, 0); + System.out.println(sb); + } + + // 분할 정복, 재귀를 통한 압축 + private static void quardTree(int n, int y, int x) { + // 압축이 가능하다면 압축 + if (isPossible(n, y, x)) { + sb.append(board[y][x]); + // 압축이 불가능하다면 분할 정복으로 압축 시도 + } else { + sb.append("("); + quardTree(n / 2, y, x); + quardTree(n / 2, y, x + n / 2); + quardTree(n / 2, y + n / 2, x); + quardTree(n / 2, y + n / 2, x + n / 2); + sb.append(")"); + } + } + + // 모두 같은 값을 가지는지 확인할 함수 + private static boolean isPossible(int n, int y, int x) { + for (int i = 0; i < n; i++) + for (int j = 0; j < n; j++) + if (board[y][x] != board[y + i][x + j]) + return false; + return true; + } +} \ No newline at end of file From a243419dde8b7eff8a410c3ea166ee7b2eb00827 Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月18日 13:56:49 +0900 Subject: [PATCH 3/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[BOJ]=201030?= =?UTF-8?q?=20=ED=94=84=EB=A0=89=ED=83=88=20=ED=8F=89=EB=A9=B4=5F241217?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/JW_1030.java" | 66 ++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/JW_1030.java" diff --git "a/BOJ/1000-5000353円262円210円/JW_1030.java" "b/BOJ/1000-5000353円262円210円/JW_1030.java" new file mode 100644 index 00000000..4e5749c7 --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/JW_1030.java" @@ -0,0 +1,66 @@ +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class JW_1030 { + + static int s, n, k, r1, r2, c1, c2; + static boolean[][] board; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + s = Integer.parseInt(st.nextToken()); + n = Integer.parseInt(st.nextToken()); + k = Integer.parseInt(st.nextToken()); + r1 = Integer.parseInt(st.nextToken()); + r2 = Integer.parseInt(st.nextToken()); + c1 = Integer.parseInt(st.nextToken()); + c2 = Integer.parseInt(st.nextToken()); + board = new boolean[r2 - r1 + 1][c2 - c1 + 1]; + makeBoard(s, 0, 0, false); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < board.length; i++) { + for (int j = 0; j < board[i].length; j++) + if (board[i][j]) + sb.append("1"); + else + sb.append("0"); + sb.append("\n"); + } + System.out.println(sb); + } + + // 분할 정복으로 검은색 타일 채우기 + private static void makeBoard(int depth, int y, int x, boolean tile) { + int len = (int) Math.pow(n, depth); // 그리드의 길이 + // 확인하지 않아도 되는 그리드라면 스킵 + if (isNotOverlap(y, x, len)) { + return; + } + // 재귀 종료 조건 + if (depth == 0) { + board[y - r1][x - c1] = tile; // true = 검은색 타일 + return; + } + int sLen = len / n; // 서브그리드의 길이 + int bsy = y + sLen * (n - k) / 2, bsx = x + sLen * (n - k) / 2; // 검은색 타일이 시작하는 좌표 + int bLen = sLen * k; // 검은색 타일의 길이 + // 서브 그리드별로 확인 + for (int i = y; i < y + len; i += sLen) { + for (int j = x; j < x + len; j += sLen) { + makeBoard(depth - 1, i, j, tile | isBlack(bsy, bsx, bLen, i, j)); // 다음 재귀 진행, 검은색 타일 체크 + } + } + } + + // 유효한 그리드인지 체크 + private static boolean isNotOverlap(int y, int x, int len) { + return y + len <= r1 || y> r2 || x + len <= c1 || x> c2; + } + + // 검은색 타일 체크 + private static boolean isBlack(int bsy, int bsx, int bLen, int y, int x) { + return bsy <= y && y < bsy + bLen && bsx <= x && x < bsx + bLen; + } +} \ No newline at end of file From 00de61f71bdbe98fd5178509efe250ceaa5ffb8c Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月19日 16:26:33 +0900 Subject: [PATCH 4/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[BOJ]=201725?= =?UTF-8?q?=20=ED=9E=88=EC=8A=A4=ED=86=A0=EA=B7=B8=EB=9E=A8=5F241218?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/JW_1725_1.java" | 43 ++++++++++++++++ "BOJ/1000-5000353円262円210円/JW_1725_2.java" | 58 ++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/JW_1725_1.java" create mode 100644 "BOJ/1000-5000353円262円210円/JW_1725_2.java" diff --git "a/BOJ/1000-5000353円262円210円/JW_1725_1.java" "b/BOJ/1000-5000353円262円210円/JW_1725_1.java" new file mode 100644 index 00000000..d01bb148 --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/JW_1725_1.java" @@ -0,0 +1,43 @@ +import java.util.ArrayDeque; +import java.util.Deque; + +public class JW_1725_1 { + + public static void main(String[] args) throws Exception { + int n = read(); + int[] arr = new int[n]; + for (int i = 0; i < n; i++) + arr[i] = read(); + Deque dq = new ArrayDeque(); // 가질 수 있는 최대 길이를 저장할 스택(덱) + int[] left = new int[n]; // 각 인덱스 별로 가질 수 있는 왼쪽으로의 최대 길이 + for (int i = 0; i < n; i++) { + left[i] = 1; // 초기값 = 자기 자신의 너비 + // 스택(덱)에 자신보다 큰 높이의 값이 있다면 해당 너비를 포함할 수 있음 + while (!dq.isEmpty() && arr[dq.peekLast()]>= arr[i]) + left[i] += left[dq.pollLast()]; // i 인덱스의 왼쪽 최대 길이에 합 + dq.offerLast(i); // 사용한 인덱스를 삽입 + } + dq.clear(); // 스택(덱) 초기화 + // 왼쪽과 동일하게 진행 + int[] right = new int[n]; + for (int i = n - 1; i>= 0; i--) { + right[i] = 1; + while (!dq.isEmpty() && arr[dq.peekLast()]>= arr[i]) + right[i] += right[dq.pollLast()]; + dq.offerLast(i); + } + int max = 0; + for (int i = 0; i < n; i++) + max = Math.max(max, arr[i] * (left[i] + right[i] - 1)); // 넓이 계산 + System.out.println(max); + } + + private static int read() throws Exception { + int c, n = System.in.read() & 15; + while ((c = System.in.read())>= 48) + n = (n << 3) + (n << 1) + (c & 15); + if (c == 13) + System.in.read(); + return n; + } +} \ No newline at end of file diff --git "a/BOJ/1000-5000353円262円210円/JW_1725_2.java" "b/BOJ/1000-5000353円262円210円/JW_1725_2.java" new file mode 100644 index 00000000..5bf7bb78 --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/JW_1725_2.java" @@ -0,0 +1,58 @@ +public class JW_1725_2 { + + static int[] arr; + static int maxArea = 0; + + public static void main(String[] args) throws Exception { + int n = read(); + arr = new int[n]; + for (int i = 0; i < n; i++) + arr[i] = read(); + recursive(0, n - 1); + System.out.println(maxArea); + } + + // 분할 정복 + private static void recursive(int l, int r) { + // 종료 조건 + if (l == r) { + maxArea = Math.max(maxArea, arr[l]); + return; + } + int m = (l + r) / 2; + int h = arr[m]; + maxArea = Math.max(maxArea, arr[m]); // 너비가 1인 넓이 계산 + int toL = m, toR = m; + // m을 기준으로 왼쪽, 오른쪽으로 1씩 늘려가면서 최대 넓이 계산 → 항상 최대높이의 왼쪽 or 오른쪽으로 최댓값 + while (l < toL && toR < r) { + // 오른쪽으로 넓히는게 이득이라면 + if (arr[toL - 1] < arr[toR + 1]) { + h = Math.min(h, arr[++toR]); // 최대 높이 갱신 + } else { + h = Math.min(h, arr[--toL]); // 최대 높이 갱신 + } + maxArea = Math.max(maxArea, h * (toR - toL + 1)); + } + // 남은 인덱스까지 계산 + while (toR < r) { + h = Math.min(h, arr[++toR]); + maxArea = Math.max(maxArea, h * (toR - toL + 1)); + } + while (l < toL) { + h = Math.min(h, arr[--toL]); + maxArea = Math.max(maxArea, h * (toR - toL + 1)); + } + // 남은 부분에 대해서 재귀 호출 + recursive(l, m); + recursive(m + 1, r); + } + + private static int read() throws Exception { + int c, n = System.in.read() & 15; + while ((c = System.in.read())>= 48) + n = (n << 3) + (n << 1) + (c & 15); + if (c == 13) + System.in.read(); + return n; + } +} \ No newline at end of file From 0cf8da5900fc23b0f88a79e5ce4065a57cca467a Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月19日 16:27:41 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[BOJ]=209372?= =?UTF-8?q?=20=EC=83=81=EA=B7=BC=EC=9D=B4=EC=9D=98=20=EC=97=AC=ED=96=89=5F?= =?UTF-8?q?241219?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/5001-10000353円262円210円/JW_9372.java" | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 "BOJ/5001-10000353円262円210円/JW_9372.java" diff --git "a/BOJ/5001-10000353円262円210円/JW_9372.java" "b/BOJ/5001-10000353円262円210円/JW_9372.java" new file mode 100644 index 00000000..80402255 --- /dev/null +++ "b/BOJ/5001-10000353円262円210円/JW_9372.java" @@ -0,0 +1,25 @@ +public class JW_9372 { + + public static void main(String[] args) throws Exception { + int t = read(); + StringBuilder sb = new StringBuilder(); + while (t--> 0) { + int n = read(), m = read(); + for (int i = 0; i < m; i++) { + read(); + read(); + } + sb.append(n - 1).append("\n"); // n - 1만 출력 + } + System.out.println(sb); + } + + private static int read() throws Exception { + int c, n = System.in.read() & 15; + while ((c = System.in.read())>= 48) + n = (n << 3) + (n << 1) + (c & 15); + if (c == 13) + System.in.read(); + return n; + } +} \ No newline at end of file From 1775d6cea5c58ca0021fd477f69a1141ac97de16 Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月19日 16:33:07 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[BOJ]=204803?= =?UTF-8?q?=20=ED=8A=B8=EB=A6=AC=5F241219?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/JW_4803.java" | 62 ++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/JW_4803.java" diff --git "a/BOJ/1000-5000353円262円210円/JW_4803.java" "b/BOJ/1000-5000353円262円210円/JW_4803.java" new file mode 100644 index 00000000..6cff2b0b --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/JW_4803.java" @@ -0,0 +1,62 @@ +import java.util.HashSet; + +public class JW_4803 { + + static int[] parent; + + public static void main(String[] args) throws Exception { + StringBuilder sb = new StringBuilder(); + int idx = 0; + while (true) { + int n = read(), m = read(); + if (n == 0 && m == 0) + break; + parent = new int[n + 1]; + for (int i = 0; i < n + 1; i++) + parent[i] = i; + boolean[] isCycle = new boolean[n + 1]; // 해당 노드가 사이클이 발생했는지 확인할 배열 + for (int i = 0; i < m; i++) { + int x = read(), y = read(); + int rootX = find(x), rootY = find(y); + // 부모가 같을 경우엔 사이클이 발생 + if (rootX == rootY) + isCycle[rootX] = true; + parent[rootX] = rootY; + isCycle[rootY] |= isCycle[rootX]; // 사이클 전파 + } + HashSet roots = new HashSet(); + for (int i = 1; i < n + 1; i++) { + int root = find(i); + if (!isCycle[root]) + roots.add(root); + } + sb.append("Case ").append(++idx).append(": "); + // 모두 사이클이 발생했을 경우 + if (roots.size() == 0) + sb.append("No trees.\n"); + // 1개의 루트가 존재 + else if (roots.size() == 1) + sb.append("There is one tree.\n"); + // n개의 루트가 존재 + else + sb.append("A forest of ").append(roots.size()).append(" trees.\n"); + } + System.out.println(sb); + } + + // Find 함수 + private static int find(int x) { + if (x == parent[x]) + return parent[x]; + return parent[x] = find(parent[x]); + } + + private static int read() throws Exception { + int c, n = System.in.read() & 15; + while ((c = System.in.read())>= 48) + n = (n << 3) + (n << 1) + (c & 15); + if (c == 13) + System.in.read(); + return n; + } +} \ No newline at end of file From e52ef83b9059cb75b022dcaf3c24411aa916b33c Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月20日 12:05:03 +0900 Subject: [PATCH 7/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[PG]=2042892?= =?UTF-8?q?=20=EA=B8=B8=20=EC=B0=BE=EA=B8=B0=20=EA=B2=8C=EC=9E=84=5F241220?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Programmers/Level3/JW_42892.java | 58 ++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Programmers/Level3/JW_42892.java diff --git a/Programmers/Level3/JW_42892.java b/Programmers/Level3/JW_42892.java new file mode 100644 index 00000000..e217bd39 --- /dev/null +++ b/Programmers/Level3/JW_42892.java @@ -0,0 +1,58 @@ +import java.util.ArrayList; + +class JW_42892 { + + class Node { + int v, x, y; + Node left; + Node right; + + Node(int v, int x, int y) { + this.v = v; + this.x = x; + this.y = y; + } + } + + ArrayList tree = new ArrayList(); + int preIdx = 0; + int postIdx = 0; + int[][] answer; + + public int[][] solution(int[][] nodeinfo) { + int n = nodeinfo.length; + for (int i = 0; i < n; i++) + tree.add(new Node(i + 1, nodeinfo[i][0], nodeinfo[i][1])); + // 노드 정렬 (깊이, 왼쪽 순으로) + tree.sort((v1, v2) -> v1.y != v2.y ? v2.y - v1.y : v1.x - v2.x); + Node root = tree.get(0); // 첫 노드가 루트 + for (int i = 1; i < n; i++) + insert(root, tree.get(i)); // 루트에 노드 삽입 + answer = new int[2][n]; + traversal(root); // 트리 순회 + return answer; + } + + // 트리 순회 + private void traversal(Node node) { + answer[0][preIdx++] = node.v; // preOrder + if (node.left != null) + traversal(node.left); + if (node.right != null) + traversal(node.right); + answer[1][postIdx++] = node.v; // postOrder + } + + private void insert(Node root, Node node) { + // 왼쪽에 삽입되어야 할 경우 + if (root.x> node.x) + if (root.left == null) + root.left = node; + else + insert(root.left, node); // 재귀 호출 + else if (root.right == null) + root.right = node; + else + insert(root.right, node); // 재귀 호출 + } +} \ No newline at end of file From eaa828cf9f1ef3c4bda6301f7147f35a0728249e Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月21日 15:33:34 +0900 Subject: [PATCH 8/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[SQL]=20Cons?= =?UTF-8?q?ecutive=20Numbers=5F241217?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "SQL/15354円243円274円354円260円250円/Consecutive_Numbers.sql" | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 "SQL/15354円243円274円354円260円250円/Consecutive_Numbers.sql" diff --git "a/SQL/15354円243円274円354円260円250円/Consecutive_Numbers.sql" "b/SQL/15354円243円274円354円260円250円/Consecutive_Numbers.sql" new file mode 100644 index 00000000..c63967cf --- /dev/null +++ "b/SQL/15354円243円274円354円260円250円/Consecutive_Numbers.sql" @@ -0,0 +1,8 @@ +SELECT + DISTINCT(l1.num) `ConsecutiveNums` +FROM + Logs l1 + INNER JOIN Logs l2 + ON l1.num = l2.num AND l1.id = l2.id + 1 + INNER JOIN Logs l3 + ON l1.num = l3.num AND l1.id = l3.id + 2 \ No newline at end of file From 20c82c10998af5c004557a25424e8c8f0981defd Mon Sep 17 00:00:00 2001 From: Jewan1120 Date: 2024年12月21日 15:37:19 +0900 Subject: [PATCH 9/9] =?UTF-8?q?=EB=B0=B1=EC=A0=9C=EC=99=84:=20[SQL]=20Inve?= =?UTF-8?q?stments=20in=202016=5F241219?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Investments_in_2016.sql" | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 "SQL/15354円243円274円354円260円250円/Investments_in_2016.sql" diff --git "a/SQL/15354円243円274円354円260円250円/Investments_in_2016.sql" "b/SQL/15354円243円274円354円260円250円/Investments_in_2016.sql" new file mode 100644 index 00000000..4311511f --- /dev/null +++ "b/SQL/15354円243円274円354円260円250円/Investments_in_2016.sql" @@ -0,0 +1,26 @@ +SELECT + ROUND(SUM(tiv_2016), 2) `tiv_2016` +FROM + Insurance +WHERE + tiv_2015 IN ( + SELECT + tiv_2015 + FROM + Insurance + GROUP BY + tiv_2015 + HAVING + COUNT(pid)> 1 + ) + AND (lat, lon) IN ( + SELECT + lat + ,lon + FROM + Insurance + GROUP BY + lat, lon + HAVING + COUNT(pid) = 1 +) \ No newline at end of file

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