From 304fe43863b6753b7fb8ee20dc09615a5af82700 Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月11日 14:30:51 +0900 Subject: [PATCH 01/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[CT]=20?= =?UTF-8?q?=ED=9A=8C=EC=A0=84=ED=95=98=EB=8A=94=20=EB=B9=99=ED=95=98=5F241?= =?UTF-8?q?111?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...353212円224円_353円271円231円355円225円230円.java" | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 "CodeTree/2019-2020353円205円204円/HW_355円232円214円354円240円204円355円225円230円353円212円224円_353円271円231円355円225円230円.java" diff --git "a/CodeTree/2019-2020353円205円204円/HW_355円232円214円354円240円204円355円225円230円353円212円224円_353円271円231円355円225円230円.java" "b/CodeTree/2019-2020353円205円204円/HW_355円232円214円354円240円204円355円225円230円353円212円224円_353円271円231円355円225円230円.java" new file mode 100644 index 00000000..31d566ff --- /dev/null +++ "b/CodeTree/2019-2020353円205円204円/HW_355円232円214円354円240円204円355円225円230円353円212円224円_353円271円231円355円225円230円.java" @@ -0,0 +1,171 @@ +import java.io.*; +import java.util.*; + +public class HW_회전하는_빙하 { + static class Node { + int x, y; + public Node(int x, int y) { + this.x = x; + this.y = y; + } + } + + static int n, q, L; + static int[][] board, nextboard; + static boolean[][] visited; + static int[] dx = {0, 1, -1, 0}; // 오른쪽, 아래, 위, 왼쪽 + static int[] dy = {1, 0, 0, -1}; + static int max = 0; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + n = Integer.parseInt(st.nextToken()); // 격자의 크기 (2^n * 2^n) + q = Integer.parseInt(st.nextToken()); // 회전 횟수 + L = (int) Math.pow(2, n); + board = new int[L][L]; + nextboard = new int[L][L]; + + // 보드 입력 + for (int i = 0; i < L; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < L; j++) { + board[i][j] = Integer.parseInt(st.nextToken()); + } + } + + // 회전 레벨 입력 + st = new StringTokenizer(br.readLine()); + while (q--> 0) { + int lv = Integer.parseInt(st.nextToken()); + if (lv> 0) rotate(lv); + melt(); + } + + // 1. 남아있는 빙하의 총량 계산 + int sum = 0; + for (int i = 0; i < L; i++) { + for (int j = 0; j < L; j++) { + sum += board[i][j]; + } + } + System.out.println(sum); + + // 2. 가장 큰 얼음 군집 크기 계산 + visited = new boolean[L][L]; + max = 0; + for (int i = 0; i < L; i++) { + for (int j = 0; j < L; j++) { + if (!visited[i][j] && board[i][j]> 0) { + max = Math.max(max, bfs(i, j)); + } + } + } + System.out.println(max); + } + + // 초기화 + public static void initialize() { + for (int i = 0; i < L; i++) { + for (int j = 0; j < L; j++) { + nextboard[i][j] = 0; + } + } + } + + + public static void rotate(int level) { + initialize(); // `nextboard` 초기화 + int boxSize = (int) Math.pow(2, level); + int halfSize = (int) Math.pow(2, level - 1); + + for (int i = 0; i < L; i += boxSize) { // 시계 방향 90도 회전 + for (int j = 0; j < L; j += boxSize) { + move(i, j, halfSize, 0); + move(i, j + halfSize, halfSize, 1); + move(i + halfSize, j, halfSize, 2); + move(i + halfSize, j + halfSize, halfSize, 3); + } + } + + for (int i = 0; i < L; i++) { + for (int j = 0; j < L; j++) { + board[i][j] = nextboard[i][j]; // 배열 복사 + } + } + } + + // size`만큼의 하위 격자를 시계 방향으로 회전 + public static void move(int startX, int startY, int size, int dir) { + for (int i = startX; i < startX + size; i++) { + for (int j = startY; j < startY + size; j++) { + int nx = i + dx[dir] * size; + int ny = j + dy[dir] * size; + if (!isValid(nx, ny)) continue; + nextboard[nx][ny] = board[i][j]; + } + } + } + + public static void melt() { + initialize(); + + for (int i = 0; i < L; i++) { + for (int j = 0; j < L; j++) { + if (board[i][j] != 0 && iceCnt(i, j) < 3) { + nextboard[i][j] = board[i][j] - 1; // -1 + } else { + nextboard[i][j] = board[i][j]; + } + } + } + + for (int i = 0; i < L; i++) { + for (int j = 0; j < L; j++) { + board[i][j] = nextboard[i][j]; + } + } + } + + public static int iceCnt(int x, int y) { + int cnt = 0; + for (int d = 0; d < 4; d++) { + int nx = x + dx[d]; + int ny = y + dy[d]; + + if (isValid(nx, ny) && board[nx][ny] != 0) { + cnt++; + } + } + return cnt; + } + + // BFS : 얼음 군집 크기를 계산 + public static int bfs(int x, int y) { + int size = 1; + Queue queue = new LinkedList(); + queue.offer(new int[]{x, y}); + visited[x][y] = true; + + while (!queue.isEmpty()) { + int[] pos = queue.poll(); + + for (int d = 0; d < 4; d++) { + int nx = pos[0] + dx[d]; + int ny = pos[1] + dy[d]; + + if (isValid(nx, ny) && !visited[nx][ny] && board[nx][ny]> 0) { + visited[nx][ny] = true; + queue.offer(new int[]{nx, ny}); + size++; + } + } + } + return size; + } + + public static boolean isValid(int x, int y) { + return x>= 0 && y>= 0 && x < L && y < L; + } +} \ No newline at end of file From d6bf6ef4acedfa12dd13078291bc1c12fd515fc5 Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月12日 22:54:17 +0900 Subject: [PATCH 02/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[SQL]=20Se?= =?UTF-8?q?cond=20Highest=20Salary=5F241112?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10354円243円274円354円260円250円/HW_Second Highest Salary.SQL" | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 "SQL/10354円243円274円354円260円250円/HW_Second Highest Salary.SQL" diff --git "a/SQL/10354円243円274円354円260円250円/HW_Second Highest Salary.SQL" "b/SQL/10354円243円274円354円260円250円/HW_Second Highest Salary.SQL" new file mode 100644 index 00000000..daadcb27 --- /dev/null +++ "b/SQL/10354円243円274円354円260円250円/HW_Second Highest Salary.SQL" @@ -0,0 +1,5 @@ +SELECT MAX(Salary) as SecondHighestSalary +FROM (SELECT salary, dense_rank() over(order by salary desc) as rk + FROM Employee + ) Employee +where rk = 2; \ No newline at end of file From efddd0f3a44ca7c21a103d486b78fd6e4576afa1 Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月13日 11:54:02 +0900 Subject: [PATCH 03/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[BOJ]=2029?= =?UTF-8?q?55=20=EC=8A=A4=EB=8F=84=EC=BF=A0=20=ED=92=80=EA=B8=B0=5F241112?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/HW_2955.java" | 112 +++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/HW_2955.java" diff --git "a/BOJ/1000-5000353円262円210円/HW_2955.java" "b/BOJ/1000-5000353円262円210円/HW_2955.java" new file mode 100644 index 00000000..240c1594 --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/HW_2955.java" @@ -0,0 +1,112 @@ +import java.io.*; + +public class HW_2955 { + static int[][] board; + public static boolean[] row, col; + public static boolean[][] square; + static boolean error = false; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + board = new int[9][9]; + for (int i = 0; i < 9; i++) { + String line = br.readLine(); + for (int j = 0; j < 9; j++) { + if (line.charAt(j) == '.') { + board[i][j] = 0; + } else board[i][j] = line.charAt(j) - '0'; + } + } + + while (true) { + if (!solve()) { + break; + } + } + + if (error) { + System.out.println("ERROR"); + } else { + for (int i = 0; i < 9; i++) { + for (int j = 0; j < 9; j++) { + if(board[i][j] == 0){ + System.out.print("."); + } else System.out.print(board[i][j]); + } + System.out.println(); + } + } + } + + public static boolean solve() { + for (int i = 1; i <= 9; i++) { + if (crossHatching(i)) { + return true; + } + } + return false; + } + + public static boolean crossHatching(int x) { + row = new boolean[9]; + col = new boolean[9]; + square = new boolean[3][3]; + + for (int i = 0; i < 9; i++) { + for (int j = 0; j < 9; j++) { + if (board[i][j] == x) { + if (row[i] || col[j] || square[i / 3][j / 3]) { + error = true; + return false; + } + row[i] = true; + col[j] = true; + square[i / 3][j / 3] = true; + } + } + } + boolean flag = false; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (!square[i][j]) { + if (check(i * 3, j * 3, x)) { + flag = true; + } + } + } + } + return flag; + } + + public static boolean check(int curX, int curY, int x) { // x : 배치하려는 숫자 + int nx = -1; + int ny = -1; + int cnt = 0; + + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (board[curX + i][curY + j] == 0 && !row[curX + i] && !col[curY + j]) { + if (cnt == 0) { + nx = curX + i; + ny = curY + j; + cnt++; + } else { + return false; + } + } + } + } + + if (cnt == 0) { + error = true; + return false; + } + + board[nx][ny] = x; + row[nx] = true; + col[ny] = true; + + return true; + } +} \ No newline at end of file From cbe17743824f444c8f92251b983aad65492b1dfe Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月13日 12:06:35 +0900 Subject: [PATCH 04/10] =?UTF-8?q?docs:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20flag=20=EB=B3=80=EC=88=98=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/HW_2955.java" | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git "a/BOJ/1000-5000353円262円210円/HW_2955.java" "b/BOJ/1000-5000353円262円210円/HW_2955.java" index 240c1594..ffc0d0be 100644 --- "a/BOJ/1000-5000353円262円210円/HW_2955.java" +++ "b/BOJ/1000-5000353円262円210円/HW_2955.java" @@ -66,17 +66,16 @@ public static boolean crossHatching(int x) { } } } - boolean flag = false; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (!square[i][j]) { if (check(i * 3, j * 3, x)) { - flag = true; + return true; } } } } - return flag; + return false; } public static boolean check(int curX, int curY, int x) { // x : 배치하려는 숫자 From 16eafae061a9cc1b51df40107e3281bb3114644c Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月14日 09:53:23 +0900 Subject: [PATCH 05/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[BOJ]=2016?= =?UTF-8?q?13=20=EC=97=AD=EC=82=AC=5F241113?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/HW_1613.java" | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/HW_1613.java" diff --git "a/BOJ/1000-5000353円262円210円/HW_1613.java" "b/BOJ/1000-5000353円262円210円/HW_1613.java" new file mode 100644 index 00000000..8e1af2ad --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/HW_1613.java" @@ -0,0 +1,44 @@ +import java.io.*; +import java.util.*; + +public class HW_1613 { + 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()); + + boolean[][] visited = new boolean[N+1][N+1]; // 방문 여부만 확인 + for(int i=0; i Date: 2024年11月14日 16:58:38 +0900 Subject: [PATCH 06/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[BOJ]=2020?= =?UTF-8?q?96=20=EB=82=B4=EB=A0=A4=EA=B0=80=EA=B8=B0=5F241113?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "BOJ/1000-5000353円262円210円/HW_2096.java" | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "BOJ/1000-5000353円262円210円/HW_2096.java" diff --git "a/BOJ/1000-5000353円262円210円/HW_2096.java" "b/BOJ/1000-5000353円262円210円/HW_2096.java" new file mode 100644 index 00000000..6c93220c --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/HW_2096.java" @@ -0,0 +1,40 @@ +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int N = Integer.parseInt(br.readLine()); + + int[][] dp = new int[N][3]; + for (int i = 0; i < N; i++) { + StringTokenizer st = new StringTokenizer(br.readLine()); + for (int j = 0; j < 3; j++) { + dp[i][j] = Integer.parseInt(st.nextToken()); + } + } + + int[][] min = new int[N][3]; + int[][] max = new int[N][3]; + + for (int i = 0; i < 3; i++) { + min[0][i] = dp[0][i]; + max[0][i] = dp[0][i]; + } + + for (int i = 1; i < N; i++) { + max[i][0] = Math.max(max[i-1][0], max[i-1][1]) + dp[i][0]; + max[i][1] = Math.max(Math.max(max[i-1][0], max[i-1][1]), max[i-1][2]) + dp[i][1]; + max[i][2] = Math.max(max[i-1][1], max[i-1][2]) + dp[i][2]; + + min[i][0] = Math.min(min[i-1][0], min[i-1][1]) + dp[i][0]; + min[i][1] = Math.min(Math.min(min[i-1][0], min[i-1][1]), min[i-1][2]) + dp[i][1]; + min[i][2] = Math.min(min[i-1][1], min[i-1][2]) + dp[i][2]; + } + + int maxValue = Math.max(Math.max(max[N-1][0], max[N-1][1]), max[N-1][2]); + int minValue = Math.min(Math.min(min[N-1][0], min[N-1][1]), min[N-1][2]); + + System.out.println(maxValue + " " + minValue); + } +} From 101d0914f77b7c47849b5a573feabbe1649bcf46 Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月15日 13:12:40 +0900 Subject: [PATCH 07/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[PG]=20150?= =?UTF-8?q?366=20=ED=91=9C=20=EB=B3=91=ED=95=A9=5F241114?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Programmers/Level3/HW_150366.java | 124 ++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 Programmers/Level3/HW_150366.java diff --git a/Programmers/Level3/HW_150366.java b/Programmers/Level3/HW_150366.java new file mode 100644 index 00000000..225352dd --- /dev/null +++ b/Programmers/Level3/HW_150366.java @@ -0,0 +1,124 @@ +import java.util.*; + +class HW_150366 { + static int n = 2500; + static int grp[]; + static String values[]; + + public String[] solution(String[] commands) { + grp = new int[n]; + values = new String[n]; + List answers = new ArrayList(); + + for(int i = 0; i < n; i++){ + grp[i] = i; + } + + StringTokenizer st; + for(int i = 0; i < commands.length; i++){ + st = new StringTokenizer(commands[i]); + int r, c; + String v; + switch(st.nextToken()){ + case "UPDATE" : // UPDATE 추출 + String v1 = st.nextToken(); // v1 추출 + String v2 = st.nextToken(); // v2 추출 + + if(st.hasMoreTokens()){ // 남아있는 토큰이 있는 경우 (UPDATE v1 v2 value) + String value = st.nextToken(); // value 추출 + r = Integer.parseInt(v1) - 1; + c = Integer.parseInt(v2) - 1; + values[find(r * 50 + c)] = value; + } + else{ // UPDATE v1 v2 + for(int j = 0; j < n; j++){ + if(values[find(j)] != null && values[find(j)].equals(v1)){ + values[find(j)] = v2; + } + } + } + break; + + case "MERGE" : + int r1 = Integer.parseInt(st.nextToken()) - 1; + int c1 = Integer.parseInt(st.nextToken()) - 1; + int r2 = Integer.parseInt(st.nextToken()) - 1; + int c2 = Integer.parseInt(st.nextToken()) - 1; + + int num1 = r1*50 + c1; + int num2 = r2*50 + c2; + + // 값이 없는 표이 대표가 되지 않게 처리 + if(values[find(num1)] == null && values[find(num2)] != null){ + int temp = num1; + num1 = num2; + num2 = temp; + } + union(num1, num2); // 두 칸 병합 + break; + + case "UNMERGE" : + r = Integer.parseInt(st.nextToken()) - 1; + c = Integer.parseInt(st.nextToken()) - 1; + + int g = find(r*50 +c); // 대표 칸 찾기 + v = values[g]; // 대표 칸의 값을 저장 + + // 경로 압축 + for(int j = 0; j < n; j++){ + find(j); + } + + for(int j = 0; j < n; j++){ + if(find(j) == g){ + grp[j] = j; // 동일한 대표 칸을 가진 경우 초기화 + + if(j == r*50 + c){ + values[j] = v; // 지정된 칸의 값 유지 + }else{ + values[j] = null; // 나머지 칸 초기화 + } + } + } + break; + + case "PRINT" : + r = Integer.parseInt(st.nextToken()) - 1; + c = Integer.parseInt(st.nextToken()) - 1; + + v = values[find(r*50 + c)]; + + if(v == null){ + answers.add("EMPTY"); + } + else answers.add(v); + break; + } + } + String[] answer = new String[answers.size()]; + for(int i = 0; i < answers.size(); i++){ + answer[i] = answers.get(i); + } + return answer; + } + + // 원소가 속한 그룹 알아내기 + static int find(int idx){ + if(idx == grp[idx]){ + return idx; + } + return grp[idx] = find(grp[idx]); + } + + // 그룹 합치기 + static void union(int g1, int g2){ + g1 = find(g1); + g2 = find(g2); + + if(g1 == g2){ + return; + } + values[g2] = null; + grp[g2] = g1; + } +} \ No newline at end of file From bb18fa85288c7b9a6d2c4348931e575fbc9a01cd Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月15日 22:09:54 +0900 Subject: [PATCH 08/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[SQL]=20?= =?UTF-8?q?=EC=83=81=ED=92=88=EC=9D=84=20=EA=B5=AC=EB=A7=A4=ED=95=9C=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=20=EB=B9=84=EC=9C=A8=20=EA=B5=AC=ED=95=98?= =?UTF-8?q?=EA=B8=B0=5F241114?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 352円265円254円355円225円230円352円270円260円.SQL" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 "SQL/10354円243円274円354円260円250円/HW_354円203円201円355円222円210円354円235円204円 352円265円254円353円247円244円355円225円234円 355円232円214円354円233円220円 353円271円204円354円234円250円 352円265円254円355円225円230円352円270円260円.SQL" diff --git "a/SQL/10354円243円274円354円260円250円/HW_354円203円201円355円222円210円354円235円204円 352円265円254円353円247円244円355円225円234円 355円232円214円354円233円220円 353円271円204円354円234円250円 352円265円254円355円225円230円352円270円260円.SQL" "b/SQL/10354円243円274円354円260円250円/HW_354円203円201円355円222円210円354円235円204円 352円265円254円353円247円244円355円225円234円 355円232円214円354円233円220円 353円271円204円354円234円250円 352円265円254円355円225円230円352円270円260円.SQL" new file mode 100644 index 00000000..0474b86f --- /dev/null +++ "b/SQL/10354円243円274円354円260円250円/HW_354円203円201円355円222円210円354円235円204円 352円265円254円353円247円244円355円225円234円 355円232円214円354円233円220円 353円271円204円354円234円250円 352円265円254円355円225円230円352円270円260円.SQL" @@ -0,0 +1,18 @@ +SELECT + YEAR(A.SALES_DATE) AS YEAR, + MONTH(A.SALES_DATE) AS MONTH, + COUNT(DISTINCT A.USER_ID) AS PURCHASED_USERS, + ROUND( + COUNT(DISTINCT A.USER_ID) / + (SELECT COUNT(*) FROM USER_INFO WHERE YEAR(JOINED) = 2021), 1) + AS PUCHASED_RATIO +FROM + ONLINE_SALE A + JOIN + USER_INFO B ON A.USER_ID = B.USER_ID +WHERE + YEAR(B.JOINED) = 2021 +GROUP BY + YEAR(A.SALES_DATE), MONTH(A.SALES_DATE) +ORDER BY + year, month; \ No newline at end of file From 76d20bd2e946e1e172437c943e548f2117785049 Mon Sep 17 00:00:00 2001 From: icegosimperson Date: 2024年11月15日 23:42:33 +0900 Subject: [PATCH 09/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[PG]=20?= =?UTF-8?q?=EB=8B=A8=EC=86=8D=20=EC=B9=B4=EB=A9=94=EB=9D=BC=5F241115?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Programmers/Level3/HW_42884.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Programmers/Level3/HW_42884.java diff --git a/Programmers/Level3/HW_42884.java b/Programmers/Level3/HW_42884.java new file mode 100644 index 00000000..e1bba9b1 --- /dev/null +++ b/Programmers/Level3/HW_42884.java @@ -0,0 +1,22 @@ +// 모든 차량이 한번은 단속용 카메라를 만나도록하는 최소 카메라 설치 개수 +import java.util.*; +class HW_42884 { + public int solution(int[][] routes) { + Arrays.sort(routes, (a,b) -> Integer.compare(a[1], b[1])); // 나간 지점 기준 정렬 + + // 단속카메라 탐색 + int cnt = 0; // 카메라 개수 + int endCamera= Integer.MIN_VALUE; // 처음엔 카메라 설치X + + for(int i=0; i Date: 2024年11月16日 00:41:46 +0900 Subject: [PATCH 10/10] =?UTF-8?q?=EC=9D=B4=ED=98=9C=EC=9B=90:=20[PG]=20181?= =?UTF-8?q?188=20=EC=9A=94=EA=B2=A9=20=EC=8B=9C=EC=8A=A4=ED=85=9C=5F241115?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Programmers/Level2/HW_181188.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Programmers/Level2/HW_181188.java diff --git a/Programmers/Level2/HW_181188.java b/Programmers/Level2/HW_181188.java new file mode 100644 index 00000000..ee235d65 --- /dev/null +++ b/Programmers/Level2/HW_181188.java @@ -0,0 +1,21 @@ +import java.util.*; +// 구하는 것 : 모든 폭격 미사일을 요격하기 위해 필요한 요격 미사일 수의 최솟값 +class Solution { + public int solution(int[][] targets) { + Arrays.sort(targets, (a, b) -> Integer.compare(a[1], b[1])); // e구간 기준 정렬 + + int cnt = 0; // 요격 미사일 개수 + double endShoot = Integer.MIN_VALUE; // 미사일 쏘는 위치 + + for(int i=0; i

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