diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 4f9a30e..0000000 --- a/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ - -*.xml -.idea/workspace.xml -.idea/misc.xml -.idea/codingtest.iml -*.class -*.xml -BOJ_JAVA/.idea/misc.xml -BOJ_JAVA/.DS_Store -.DS_Store -theory_Python/.DS_Store diff --git a/JAVA_2021/.idea/.gitignore b/JAVA_2021/.idea/.gitignore deleted file mode 100644 index 73f69e0..0000000 --- a/JAVA_2021/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/JAVA_2021/BOJ_JAVA.iml b/JAVA_2021/BOJ_JAVA.iml deleted file mode 100644 index c90834f..0000000 --- a/JAVA_2021/BOJ_JAVA.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_1000.java b/JAVA_2021/src/BOJ/BOJ_1000.java deleted file mode 100644 index 718f809..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1000.java +++ /dev/null @@ -1,14 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_1000 { - public static void main(String[] args){ - - Scanner sc = new Scanner(System.in); - int a = sc.nextInt(); - int b = sc.nextInt(); - - System.out.print(a+b); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1008.java b/JAVA_2021/src/BOJ/BOJ_1008.java deleted file mode 100644 index 98dfcbd..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1008.java +++ /dev/null @@ -1,15 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_1008 { - public static void main(String[] args){ - - Scanner sc = new Scanner(System.in); - double a = sc.nextInt(); - double b = sc.nextInt(); - - System.out.println(a / b); - sc.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1010.java b/JAVA_2021/src/BOJ/BOJ_1010.java deleted file mode 100644 index 612caad..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1010.java +++ /dev/null @@ -1,37 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1010 { - private static int N, M; - private static int[][] dp; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - dp = new int[N + 1][M + 1]; - for (int n = 2; n <= N; n++) { - dp[n][1] = 0; - } - for (int m = 1; m <= M; m++) { - dp[1][m] = m; - } - - for (int x = 2; x <= N; x++) { - for (int y = 2; y <= M; y++) { - dp[x][y] = dp[x][y - 1] + dp[x - 1][y - 1]; - } - } - System.out.println(dp[N][M]); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1012.java b/JAVA_2021/src/BOJ/BOJ_1012.java deleted file mode 100644 index 8c75b82..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1012.java +++ /dev/null @@ -1,96 +0,0 @@ -package BOJ; - -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 BOJ_1012 { - private static int M, N, K; - private static int[][] graph; - private static boolean[][] visited; - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - -// private static void dfs(int x, int y) { -// visited[x][y] = true; -// for (int i =0 ; i < 4; i++) { -// int nx = x + dx[i]; -// int ny = y + dy[i]; -// -// if (0 <= nx && nx < M && 0 <= ny && ny < N) { -// if (!visited[nx][ny] && graph[nx][ny] == 1) { -// dfs(nx, ny); -// } -// } -// } -// } - - private static void bfs(int x, int y) { - Queue queue = new LinkedList(); - queue.offer(new Node(x, y)); - while (!queue.isEmpty()) { - Node node = queue.poll(); - x = node.x; - y = node.y; - visited[x][y] = true; - - for (int i = 0; i < 4; i++) { - int nx = x + dx[i]; - int ny = y + dy[i]; - - if (0 <= nx && nx < M && 0 <= ny && ny < N) { - if (!visited[nx][ny] && graph[nx][ny] == 1) { - queue.offer(new Node(nx, ny)); - visited[nx][ny] = true; - } - } - - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - M = Integer.parseInt(st.nextToken()); - N = Integer.parseInt(st.nextToken()); - K = Integer.parseInt(st.nextToken()); - graph = new int[M][N]; - visited = new boolean[M][N]; - - for (int i = 0; i < K; i++) { - st = new StringTokenizer(br.readLine()); - int X = Integer.parseInt(st.nextToken()); - int Y = Integer.parseInt(st.nextToken()); - graph[X][Y] = 1; - } - - int cnt = 0; - for (int i = 0; i < M; i++) { - for (int j = 0; j < N; j++) { - if (graph[i][j] == 1 && !visited[i][j]) { - cnt++; - bfs(i, j); - - } - } - } - System.out.println(cnt); - } - } -} - -class Node { - int x; - int y; - public Node (int x, int y) { - this.x = x; - this.y = y; - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_10157.java b/JAVA_2021/src/BOJ/BOJ_10157.java deleted file mode 100644 index 204219e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10157.java +++ /dev/null @@ -1,50 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_10157 { - private static int[] dx = {-1, 0, 1, 0}; - private static int[] dy = {0, 1, 0, -1}; - private static int[][] graph; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - StringBuilder sb = new StringBuilder(); - int c = Integer.parseInt(st.nextToken()); - int r = Integer.parseInt(st.nextToken()); - int k = Integer.parseInt(br.readLine()); - graph = new int[r][c]; - - if (c * r < k) { - System.out.println(0); - System.exit(0); - } - int x = r - 1; - int y = 0; - int i = 0; - int cnt = 1; - - while (cnt != k) { - graph[x][y] = cnt; - int nx = x + dx[i]; - int ny = y + dy[i]; - - if (nx < 0 || ny < 0 || nx>= r || ny>= c || graph[nx][ny] != 0) { - i++; - if (i == 4) i = 0; - nx = x + dx[i]; - ny = y + dy[i]; - } - x = nx; - y = ny; - cnt++; - } - sb.append(y+1).append(" ").append(r-x); - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10158.java b/JAVA_2021/src/BOJ/BOJ_10158.java deleted file mode 100644 index 4b84738..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10158.java +++ /dev/null @@ -1,37 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_10158 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - int w = Integer.parseInt(st.nextToken()); - int h = Integer.parseInt(st.nextToken()); - st = new StringTokenizer(br.readLine()); - int p = Integer.parseInt(st.nextToken()); - int q = Integer.parseInt(st.nextToken()); - int t = Integer.parseInt(br.readLine()); - - int a = (p + t) / w; - int b = (q + t) / h; - int x =0, y = 0; - - if (a % 2 == 0) { - x = (p + t) % w; - } else { - x = w - (p + t) % w; - } - - if (b % 2 == 0) { - y = (q + t) % h; - } else { - y = h - (q + t) % h; - } - System.out.println(x + " " + y); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10163.java b/JAVA_2021/src/BOJ/BOJ_10163.java deleted file mode 100644 index 64a9a5b..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10163.java +++ /dev/null @@ -1,51 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_10163 { - private static int[][] graph; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - graph = new int[101][101]; - int[] ans = new int[N]; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int x = Integer.parseInt(st.nextToken()); - int y = Integer.parseInt(st.nextToken()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - - - for (int xX = x; xX < x + a; xX++) { - for (int yY = y; yY < y + b; yY++) { - graph[xX][yY] = i + 1; - } - } - } - - for (int chk = 1; chk <= N; chk++) { - int cnt = 0; - for (int i = 0; i < 101; i++) { - for (int j = 0; j < 101; j++) { - if (graph[i][j] == chk) { - cnt++; - } - } - } - ans[chk - 1] = cnt; - } - - for (int i : ans) { - System.out.println(i); - } - - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1037.java b/JAVA_2021/src/BOJ/BOJ_1037.java deleted file mode 100644 index 349ee9a..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1037.java +++ /dev/null @@ -1,18 +0,0 @@ -package BOJ; - -import java.util.ArrayList; -import java.util.Scanner; - -public class BOJ_1037 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int N = sc.nextInt(); - ArrayList arr = new ArrayList(); - - for (int i = 0; i < N; i++) { - arr.add(sc.nextInt()); - } - arr.sort(null); - System.out.println(arr.get(0) * arr.get(N - 1)); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10430.java b/JAVA_2021/src/BOJ/BOJ_10430.java deleted file mode 100644 index 75e20bf..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10430.java +++ /dev/null @@ -1,19 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_10430 { - public static void main(String[] args){ - - Scanner sc = new Scanner(System.in); - int a = sc.nextInt(); - int b = sc.nextInt(); - int c = sc.nextInt(); - - System.out.println((a + b) % c); - System.out.println(((a % c) + (b % c)) % c); - System.out.println((a * b) % c); - System.out.println(((a % c) * (b % c)) % c); - sc.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1062.java b/JAVA_2021/src/BOJ/BOJ_1062.java deleted file mode 100644 index cc5db66..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1062.java +++ /dev/null @@ -1,85 +0,0 @@ -package BOJ; - -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; - -public class BOJ_1062 { - - static int n, k; - static List words = new ArrayList(); - static int answer = 0; - static boolean[] alphaBool; - - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - n = sc.nextInt(); - k = sc.nextInt(); - - k -= 5; - for (int i = 0; i < n; i++) { - int word = 0; - char[] s = sc.next().toCharArray(); - for (char c: s) { - if (anticCheck(c)) continue; - else { - if (c == 'b') { - word |= (1 << (c-'a'-1)); - } else if (c <= 'i') { - word |= (1 << (c-'a'-2)); - } else if (c <= 'n') { - word |= (1 << (c-'a'-3)); - } else if (c <= 't') { - word |= (1 << (c-'a'-4)); - } else { - word |= (1 << (c-'a'-5)); - } - } - } - words.add(word); - } - if (k < 0) { - System.out.println(answer); - return; - } - for (int i = 0; i<1<<21; i++) { - int cnt = 0; - for (int j = 0; j<21; j++) { - if((i &(1 < 0) { - cnt++; - } - } - if (cnt == k) { - alphaBool = new boolean[21]; - for (int j = 0; j < 21; j ++) { - if ((i & (1< 0) { - alphaBool[j] = true; - } - } - int mask = 0; - for (int j = 0; j < 21; j++) { - if (alphaBool[j]) { - mask |= (1<[] tree; - private static Queue queue; - - private static void sol() { - while(!queue.isEmpty()) { - Integer cur = queue.poll(); - if (parent[cur] != -1 && tree[cur].size() == 0) { - ans++; - } else if (parent[cur] == -1 && tree[cur].size() == 0) { - ans = 1; - } - - for (int i = 0; i < tree[cur].size(); i++) { - Integer next = tree[cur].get(i); - queue.add(next); - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - - parent = new int[N]; - tree = new ArrayList[N]; - - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - - for (int i = 0; i < N; i++) { - tree[i] = new ArrayList(); - } - - for (int i = 0; i < N; i++) { - parent[i] = Integer.parseInt(st.nextToken()); - if (parent[i] == -1) continue; - else { - tree[parent[i]].add(i); - } - } - - int remove = Integer.parseInt(br.readLine()); - int removeParent = parent[remove]; - if (removeParent == -1) { - tree[remove] = new ArrayList(); - } else { - for (int i = 0; i < tree[removeParent].size(); i++) { - if (tree[removeParent].get(i) == remove) { - tree[removeParent].remove(i); - break; - } - } - } - - queue = new LinkedList(); - for (int i = 0; i < N; i++) { - if (parent[i] == -1) { - queue.add(i); - sol(); - } - } - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1074.java b/JAVA_2021/src/BOJ/BOJ_1074.java deleted file mode 100644 index c32c625..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1074.java +++ /dev/null @@ -1,33 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1074 { - private static int N, r, c, cnt; - private static void Recursive(int N, int r, int c) { - int l = (int) Math.pow(2, N - 1); - if (r>= l) cnt += Math.pow(4, N - 1) * 2; - if (c>= l) cnt += Math.pow(4, N - 1); - if (r> 0 || c> 0) { - Recursive(N - 1, r>= l ? r - l : r, c>= l ? c - l : c); - } else { - return; - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - r = Integer.parseInt(st.nextToken()); - c = Integer.parseInt(st.nextToken()); - - Recursive(N, r, c); - - System.out.println(cnt); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10757.java b/JAVA_2021/src/BOJ/BOJ_10757.java deleted file mode 100644 index 419a204..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10757.java +++ /dev/null @@ -1,13 +0,0 @@ -package BOJ; - -import java.io.*; -import java.math.BigInteger; - - -public class BOJ_10757 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] arr = br.readLine().split(" "); - System.out.println(new BigInteger(arr[0]).add(new BigInteger(arr[1]))); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10807.java b/JAVA_2021/src/BOJ/BOJ_10807.java deleted file mode 100644 index 3af0bd0..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10807.java +++ /dev/null @@ -1,30 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_10807 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int [] arr = new int[N]; - StringTokenizer st = new StringTokenizer(br.readLine()); - - for (int i = 0; i < arr.length; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - int v = Integer.parseInt(br.readLine()); - - int ans = 0; - for (int i = 0; i < arr.length; i++) { - if (arr[i] == v) { - ans++; - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10809.java b/JAVA_2021/src/BOJ/BOJ_10809.java deleted file mode 100644 index 718e6a0..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10809.java +++ /dev/null @@ -1,26 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_10809 { - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - byte[] s = br.readLine().getBytes(); - byte[] alpha = new byte[26]; - for (int i = 0; i < alpha.length; i++) { - alpha[i] = -1; - } - - for (int i = 0; i < s.length; i++) { - if (alpha[s[i] - 'a'] == -1) { - alpha[s[i] - 'a'] = (byte)i; - } - } - for (int ans : alpha) { - System.out.println(ans + " "); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10818.java b/JAVA_2021/src/BOJ/BOJ_10818.java deleted file mode 100644 index 4e4b8ab..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10818.java +++ /dev/null @@ -1,30 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_10818 { - public static void main(String[] args) throws IOException{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[] arr = new int[N]; - - int max = Integer.MIN_VALUE; - int min = Integer.MAX_VALUE; - - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - for ( int i = 0; i < N; i++){ - arr[i] = Integer.parseInt(st.nextToken()); - if (arr[i]> max) { - max = arr[i]; - } - - if (arr[i] < min) { - min = arr[i]; - } - } - System.out.println(min + " " + max); - br.close(); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10819.java b/JAVA_2021/src/BOJ/BOJ_10819.java deleted file mode 100644 index 8ae5a9d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10819.java +++ /dev/null @@ -1,65 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_10819 { - private static int N; - private static int[] input, tmp; - private static boolean[] chk; - private static ArrayList arr; - - private static void Permutation(int depth) { - if (depth == N) { - int sum = 0; - - for (int i = 2 ; i < N + 1; i++) { - sum += Math.abs(tmp[i - 2] - tmp[i - 1]); - } - arr.add(sum); - return; - } - - for(int i=0; i(); - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i < N; i++) { - input[i] = Integer.parseInt(st.nextToken()); - } - - Permutation(0); - - int max = -123456789; - - for (int i = 0 ; i = 97 && code <= 122) { - cnt[0] += 1; - } - if (code>= 65 && code <= 90) { - cnt[1] += 1; - } - if (code>= 48 && code <= 57) { - cnt[2] += 1; - } - - if (code == 32) { - cnt[3] += 1; - } - } - for (int i : cnt) { - System.out.print(i + " "); - } - System.out.println(); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10845.java b/JAVA_2021/src/BOJ/BOJ_10845.java deleted file mode 100644 index 4ddf5bd..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10845.java +++ /dev/null @@ -1,55 +0,0 @@ -package BOJ; - -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 BOJ_10845 { - private static Queue queue = new LinkedList(); - static int X; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int Order = Integer.parseInt(br.readLine()); - for (int tc = 0; tc < Order; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - - String cmd = st.nextToken(); - - if (cmd.equals("push")) { - X = Integer.parseInt(st.nextToken()); - queue.add(X); - } else if (cmd.equals("pop")) { - if (queue.isEmpty()) { - System.out.println(-1); - } else { - System.out.println(queue.poll()); - } - } else if (cmd.equals("size")) { - System.out.println(queue.size()); - } else if (cmd.equals("empty")) { - if (queue.isEmpty()) { - System.out.println(1); - } else { - System.out.println(0); - } - } else if (cmd.equals("front")) { - if (queue.isEmpty()) { - System.out.println(-1); - } else { - System.out.println(queue.peek()); - } - } else if (cmd.equals("back")) { - if (queue.isEmpty()) { - System.out.println(-1); - } else { - System.out.println(X); - } - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10867.java b/JAVA_2021/src/BOJ/BOJ_10867.java deleted file mode 100644 index 4e85e47..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10867.java +++ /dev/null @@ -1,25 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_10867 { - 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(br.readLine()); - int[] arr = new int[2001]; - - for (int i = 0; i < N; i++) { - arr[Integer.parseInt(st.nextToken()) + 1000]++; - } - - for (int i = 0; i <= 2000; i++) { - if (arr[i]> 0) { - System.out.println(i - 1000); - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10870.java b/JAVA_2021/src/BOJ/BOJ_10870.java deleted file mode 100644 index 4cc3771..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10870.java +++ /dev/null @@ -1,21 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_10870 { - public static int recursive(int n) { - if (n == 0) { - return 0; - } else if (n == 1) { - return 1; - } else { - return recursive(n - 1) + recursive(n - 2); - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - System.out.println(recursive(n)); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_10871.java b/JAVA_2021/src/BOJ/BOJ_10871.java deleted file mode 100644 index fa060b8..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10871.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_10871 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] str = br.readLine().split(" "); - - int n = Integer.parseInt(str[0]); - int x = Integer.parseInt(str[1]); - - String[] input = br.readLine().split(" "); - for (int i = 0; i < n; i++){ - int a = Integer.parseInt(input[i]); - if (a < x){ - System.out.print(a + " "); - } - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10872.java b/JAVA_2021/src/BOJ/BOJ_10872.java deleted file mode 100644 index c787695..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10872.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_10872 { - - public static int pactorial(int n) { - if (n <= 1) { - return 1; - } else { - return pactorial(n - 1) * n; - } - } - - public static void main(String[] args) throws IOException{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - System.out.println(pactorial(N)); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10942.java b/JAVA_2021/src/BOJ/BOJ_10942.java deleted file mode 100644 index 92d0f41..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10942.java +++ /dev/null @@ -1,42 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_10942 { - private static int N, M, s, e; - private static int[] arr; - private static int[][] dp; - - private static int function(int start, int end) { - if (start>= end) return 1; - if (dp[start][end] != 0) return dp[start][end]; - if (arr[start] != arr[end]) return 0; - dp[start][end] = function(start + 1, end - 1); - return dp[start][end]; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - N = Integer.parseInt(br.readLine()); - arr = new int[N]; - dp = new int[N][N]; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - M = Integer.parseInt(br.readLine()); - for (int i = 0 ; i < M; i++) { - st = new StringTokenizer(br.readLine()); - s = Integer.parseInt(st.nextToken()); - e = Integer.parseInt(st.nextToken()); - sb.append(function(s - 1, e - 1)).append("\n"); - } - System.out.print(sb.toString()); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_10951.java b/JAVA_2021/src/BOJ/BOJ_10951.java deleted file mode 100644 index 053c79f..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10951.java +++ /dev/null @@ -1,32 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.util.StringTokenizer; - -public class BOJ_10951 { - public static void main(String args[]) throws Exception { - - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st; - - while (true) { - String line = br.readLine(); - // if(line == null) {//이클립스에서 작동하지 않음 - if (line == null || line.equals("")) { - break; - } - st = new StringTokenizer(line); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - bw.write(a + b + "\n"); - } - - bw.flush(); - bw.close(); - br.close(); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_10952.java b/JAVA_2021/src/BOJ/BOJ_10952.java deleted file mode 100644 index bce857d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_10952.java +++ /dev/null @@ -1,23 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_10952 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - while (true){ - StringTokenizer st = new StringTokenizer(br.readLine()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - - if (a == 0 && b == 0){ - br.close(); - break; - } else { - System.out.println(a + b); - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11023.java b/JAVA_2021/src/BOJ/BOJ_11023.java deleted file mode 100644 index 86a1757..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11023.java +++ /dev/null @@ -1,19 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -class BOJ_11023 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - int ans = 0; - while(st.hasMoreTokens()){ - ans += Integer.parseInt(st.nextToken()); - } - System.out.println(ans); - br.close(); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_11047.java b/JAVA_2021/src/BOJ/BOJ_11047.java deleted file mode 100644 index 762ebcc..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11047.java +++ /dev/null @@ -1,32 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.Collections; -import java.util.StringTokenizer; - -public class BOJ_11047 { - 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()); - Integer[] arr = new Integer[N]; - int ans = 0; - - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(br.readLine()); - } - Arrays.sort(arr, Collections.reverseOrder()); - - for (int i = 0; i < arr.length; i++) { - ans += K / arr[i]; - K = K % arr[i]; - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1110.java b/JAVA_2021/src/BOJ/BOJ_1110.java deleted file mode 100644 index 23c3e9c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1110.java +++ /dev/null @@ -1,30 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_1110 { - public static void main(String[] args){ - - Scanner sc = new Scanner(System.in); - - int x = sc.nextInt(); - int ans = 0; - int tmp = x; - - while (true){ - int a = tmp / 10; - int b = tmp % 10; - if (a + b < 10){ - tmp = b * 10 + a + b; - } else { - tmp = b * 10 + (a + b) % 10; - } - ans ++; - if (tmp == x){ - break; - } - } - System.out.println(ans); - sc.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11328.java b/JAVA_2021/src/BOJ/BOJ_11328.java deleted file mode 100644 index a3efe4d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11328.java +++ /dev/null @@ -1,27 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_11328 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int N = sc.nextInt(); - for (int i = 0; i < N; i++) { - int [] alpha = new int[26]; - char [] word1 = sc.next().toCharArray(); - char [] word2 = sc.next().toCharArray(); - - for (char ch : word1) alpha[ch - 97]++; - for (char ch : word2) alpha[ch - 97]--; - - boolean flag = true; - - for (int j : alpha) { - if (j != 0) { - flag = false; - } - } - System.out.println(flag ? "Possible" : "Impossible"); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11399.java b/JAVA_2021/src/BOJ/BOJ_11399.java deleted file mode 100644 index 3f3c7cb..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11399.java +++ /dev/null @@ -1,29 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_11399 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[] arr = new int[N]; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(arr); - int ans = 0; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N - i; j++) { - ans += arr[j]; - } - } - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11403.java b/JAVA_2021/src/BOJ/BOJ_11403.java deleted file mode 100644 index 4deaeb3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11403.java +++ /dev/null @@ -1,59 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_11403 { - private static int N; - private static int[][] graph; - private static boolean[] visited; - - private static void dfs(int x, int y) { - visited[y] = true; - graph[x][y] = 1; - - for (int i = 0; i < N; i++) { - if (graph[y][i] == 1 && !visited[i]) { - dfs(x, i); - } - } - } - - public static void main(String[] args) throws IOException{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - N = Integer.parseInt(br.readLine()); - - graph = new int[N][N]; - visited = new boolean[N]; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0; j < N; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - visited[j] = false; - } - - for (int j = 0; j < N; j++) { - if (graph[i][j] == 1 && !visited[j]) { - dfs(i, j); - } - } - } - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - bw.write(graph[i][j] + " "); - } - bw.write("\n"); - } - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1149.java b/JAVA_2021/src/BOJ/BOJ_1149.java deleted file mode 100644 index 7dd01e9..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1149.java +++ /dev/null @@ -1,28 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1149 { - public static void main(String[] args) throws Exception { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int N = Integer.parseInt(br.readLine()); - int[][] arr = new int[N + 1][3]; - - for (int i = 1; i <= N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - arr[i][0] = Math.min(arr[i - 1][1], arr[i - 1][2]) + Integer.parseInt(st.nextToken()); - arr[i][1] = Math.min(arr[i - 1][0], arr[i - 1][2]) + Integer.parseInt(st.nextToken()); - arr[i][2] = Math.min(arr[i - 1][0], arr[i - 1][1]) + Integer.parseInt(st.nextToken()); - } - - int ans = 1234567890; - for (int i = 0 ; i < 3; i++) { - ans = Math.min(ans, arr[N][i]); - } - System.out.print(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1152.java b/JAVA_2021/src/BOJ/BOJ_1152.java deleted file mode 100644 index ccab7ee..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1152.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1152 { - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st; - - st = new StringTokenizer(br.readLine()); - int ans = 0; - - for (int i = 0, j = st.countTokens(); i < j; i++) { - ans++; - } - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1158.java b/JAVA_2021/src/BOJ/BOJ_1158.java deleted file mode 100644 index d1d9f85..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1158.java +++ /dev/null @@ -1,38 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.*; - -public class BOJ_1158 { - public static void main(String[] args) throws Exception { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - ArrayList list = new ArrayList(); - String s = br.readLine(); - StringTokenizer st = new StringTokenizer(s); - - int n = Integer.parseInt(st.nextToken()); - int k = Integer.parseInt(st.nextToken()); - - for(int i = 1; i <= n; i++) - list.add(i); - - StringBuilder sb = new StringBuilder("<"); - int i = k - 1; - - while(true) { - sb.append(list.get(i)); - list.remove(i); - - if(list.size() == 0) { - sb.append(">"); - break; - }else - sb.append(", "); - i += k - 1; - - if(i>= list.size()) i %= list.size(); - } - System.out.println(sb); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11650.java b/JAVA_2021/src/BOJ/BOJ_11650.java deleted file mode 100644 index 7522bfb..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11650.java +++ /dev/null @@ -1,55 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.StringTokenizer; - -public class BOJ_11650 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - ArrayList arr = new ArrayList(); - - for (int i = 0 ;i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int x = Integer.parseInt(st.nextToken()); - int y = Integer.parseInt(st.nextToken()); - - arr.add(new Node(x, y)); - } - Collections.sort(arr); - StringBuilder sb = new StringBuilder(); - for (int i = 0 ; i { - int x, y; - - public Node(int x, int y) { - this.x = x; - this.y = y; - } - - @Override - public String toString() { - return x + " " + y; - } - - @Override - public int compareTo(Node o) { - if (x == o.x) { - return y - o.y; - } return x - o.x; - } - } -} - - diff --git a/JAVA_2021/src/BOJ/BOJ_11650_Comparable.java b/JAVA_2021/src/BOJ/BOJ_11650_Comparable.java deleted file mode 100644 index 1e836b2..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11650_Comparable.java +++ /dev/null @@ -1,53 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.StringTokenizer; - -public class BOJ_11650_Comparable { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - ArrayList arr = new ArrayList(); - - for (int i = 0 ;i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int x = Integer.parseInt(st.nextToken()); - int y = Integer.parseInt(st.nextToken()); - - arr.add(new Node(x, y)); - } - Collections.sort(arr); - StringBuilder sb = new StringBuilder(); - for (int i = 0 ; i { - int x, y; - - public Node(int x, int y) { - this.x = x; - this.y = y; - } - - @Override - public String toString() { - return x + " " + y; - } - - @Override - public int compareTo(Node o) { - if (x == o.x) { - return y - o.y; - } return x - o.x; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11653.java b/JAVA_2021/src/BOJ/BOJ_11653.java deleted file mode 100644 index 1528b3b..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11653.java +++ /dev/null @@ -1,20 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_11653 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - int i = 2; - while ( n != 1) { - if (n % i == 0) { - n /= i; - System.out.println(i); - } else { - i ++; - } - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11654.java b/JAVA_2021/src/BOJ/BOJ_11654.java deleted file mode 100644 index 0efa547..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11654.java +++ /dev/null @@ -1,13 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_11654 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - char N = br.readLine().charAt(0); - System.out.println((int) N); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11718.java b/JAVA_2021/src/BOJ/BOJ_11718.java deleted file mode 100644 index ecc6108..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11718.java +++ /dev/null @@ -1,25 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; - -public class BOJ_11718 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - ArrayList lst = new ArrayList(); - String line; - while ((line = br.readLine()) != null) { - lst.add(line); - } - for (int i = 0; i < lst.size(); i++) { - if ( i == lst.size()) { - System.out.println(lst.get(i)); - } - else { - System.out.println(lst.get(i)); - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11720.java b/JAVA_2021/src/BOJ/BOJ_11720.java deleted file mode 100644 index d237122..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11720.java +++ /dev/null @@ -1,21 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_11720 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - String input = br.readLine(); - int sum = 0; - - for (int i = 0; i < n; i++) { - sum += input.charAt(i) - '0'; - - } - System.out.println(sum); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11729.java b/JAVA_2021/src/BOJ/BOJ_11729.java deleted file mode 100644 index a16f2f7..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11729.java +++ /dev/null @@ -1,33 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_11729 { - static int from = 1; - static int aux = 2; - static int to = 3; - static int cnt = 0; - static StringBuilder sb = new StringBuilder(""); - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - hanoi(N, from, to, aux); - System.out.println(cnt); - System.out.println(sb); - - } - - private static void hanoi(int N, int from, int to, int aux) { - cnt++; - if (N == 1) { - sb.append(from + " " + to + "\n"); - return; - } - hanoi(N - 1, from, aux, to); - sb.append(from + " " + to + "\n"); - hanoi(N - 1, aux, to, from); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11866.java b/JAVA_2021/src/BOJ/BOJ_11866.java deleted file mode 100644 index fdb80ed..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11866.java +++ /dev/null @@ -1,41 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.*; - -public class BOJ_11866 { - 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()); - Queue circle = new LinkedList(); - Queue ans = new LinkedList(); - - for (int i = 1; i <= N; i++) { - circle.add(i); - } - - int cnt = 1; - while (!circle.isEmpty()) { - if (cnt == K) { - ans.add(circle.poll()); - cnt = 1; - } - else { - circle.add(circle.poll()); - cnt++; - } - } - - StringBuilder sb = new StringBuilder(); - sb.append("<"); - for (int i = 0; i < N - 1; i++) { - sb.append(ans.poll()).append(", "); - } - sb.append(ans.poll()).append(">"); - System.out.println(sb); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_11931.java b/JAVA_2021/src/BOJ/BOJ_11931.java deleted file mode 100644 index ed3e902..0000000 --- a/JAVA_2021/src/BOJ/BOJ_11931.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.Collections; - -public class BOJ_11931 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - Integer[] num = new Integer[Integer.parseInt(br.readLine())]; - for (int i = 0; i < num.length; i++) { - num[i] = Integer.parseInt(br.readLine()); - } - Arrays.sort(num, Collections.reverseOrder()); - for (int i = 0; i < num.length; i++) { - bw.write(num[i] + "\n"); - } - br.close(); - bw.flush(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_12101.java b/JAVA_2021/src/BOJ/BOJ_12101.java deleted file mode 100644 index 329f6d1..0000000 --- a/JAVA_2021/src/BOJ/BOJ_12101.java +++ /dev/null @@ -1,17 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_12101 { - 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()); - - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1244.java b/JAVA_2021/src/BOJ/BOJ_1244.java deleted file mode 100644 index b7f944c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1244.java +++ /dev/null @@ -1,34 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1244 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - boolean swList[] = new boolean[N]; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for(int i = 0 ; i < N; i++) { - char stat = st.nextToken().charAt(0); - if(stat == '1') swList[i] = true; - } - - int StudentNum = Integer.parseInt(br.readLine()); - for (int i = 0 ; i < StudentNum; i++) { - st = new StringTokenizer(br.readLine()); - int gender = Integer.parseInt(st.nextToken()); - int place = Integer.parseInt(st.nextToken()); - - if (gender == 1) { - for (int j = 0; place * j - 1 < N; j++) { - int nPlace = place * j - 1; - } - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_12517.java b/JAVA_2021/src/BOJ/BOJ_12517.java deleted file mode 100644 index 4e02655..0000000 --- a/JAVA_2021/src/BOJ/BOJ_12517.java +++ /dev/null @@ -1,24 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; - -public class BOJ_12517 { - public static char[] mo = {'a', 'e', 'i', 'o', 'u'}; - public static char[] za = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', - 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'z'}; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int T = Integer.parseInt(br.readLine()); - ArrayList arr = new ArrayList(); - - for (int tc = 1; tc < T + 1; tc++) { - String str = br.readLine(); - arr.add(str); - } - System.out.println(arr); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1260.java b/JAVA_2021/src/BOJ/BOJ_1260.java deleted file mode 100644 index a15a5e3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1260.java +++ /dev/null @@ -1,79 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.*; - -public class BOJ_1260 { - private static int N, M, V; - private static LinkedList[] list; - private static boolean[] visited; - - private static void dfs(int start) { - visited[start] = true; - System.out.print(start + " "); - - for (int i : list[start]) { - if (!visited[i]) { - visited[i] = true; - dfs(i); - } - } - } - - private static void bfs(int start) { - visited[start] = true; - Deque queue = new ArrayDeque(); - queue.add(start); - - while (!queue.isEmpty()) { - int v = queue.pollFirst(); - System.out.print(v + " "); - - for (int i : list[v]) { - if (!visited[i]) { - queue.add(i); - visited[i] = true; - } - } - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - V = Integer.parseInt(st.nextToken()); - - list = new LinkedList[N + 1]; - visited = new boolean[N + 1]; - - for (int i = 1 ; i <= N; i ++) { - list[i] = new LinkedList(); - } - - for (int i = 0 ; i < M; i ++){ - st = new StringTokenizer(br.readLine()); - int node1 = Integer.parseInt(st.nextToken()); - int node2 = Integer.parseInt(st.nextToken()); - list[node1].add(node2); - list[node2].add(node1); - } - - for (int j = 1; j <= N; j++) Collections.sort(list[j]); - - dfs(V); - - for (int i = 0; i < N + 1; i++) { - visited[i] = false; - } - System.out.println(); - - bfs(V); - - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1260_2.java b/JAVA_2021/src/BOJ/BOJ_1260_2.java deleted file mode 100644 index f86883d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1260_2.java +++ /dev/null @@ -1,84 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.*; - -public class BOJ_1260_2 { - private static int N, M, V; - private static LinkedList[] graph; - private static boolean[] visited; - private static StringBuilder sb; - - private static void dfs(int start) { - visited[start] = true; - sb.append(start).append(" "); - for (int i : graph[start]) { - if (!visited[i]) { - visited[i] = true; - dfs(i); - } - } - } - - private static void bfs(int start) { - visited[start] = true; - Queue queue = new LinkedList(); - queue.add(start); - - while (!queue.isEmpty()) { - int v = queue.poll(); - sb.append(v).append(" "); - for (int i : graph[v]) { - if (!visited[i]) { - queue.add(i); - visited[i] = true; - } - } - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - sb = new StringBuilder(); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - V = Integer.parseInt(st.nextToken()); - - graph = new LinkedList[N + 1]; - for (int i = 1 ; i <= N; i++) { - graph[i] = new LinkedList(); - } - - for (int i = 0 ; i < M; i ++) { - st = new StringTokenizer(br.readLine()); - int from = Integer.parseInt(st.nextToken()); - int to = Integer.parseInt(st.nextToken()); - graph[from].add(to); - graph[to].add(from); - - } - - for (int i = 1; i <= N; i++) { - Collections.sort(graph[i]); - } - - visited = new boolean[N + 1]; - dfs(V); - - sb.append("\n"); - - for (int i = 0 ; i < visited.length; i++) { - visited[i] = false; - } - - bfs(V); - - System.out.print(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1261.java b/JAVA_2021/src/BOJ/BOJ_1261.java deleted file mode 100644 index 71fcb31..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1261.java +++ /dev/null @@ -1,78 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Deque; -import java.util.LinkedList; - -public class BOJ_1261 { // 알고스팟 - private static int m, n; - private static int[][] graph; - private static int[][] count; - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - private static void bfs() { - Deque queue = new LinkedList(); - queue.offer(new Node(0, 0)); - count[0][0] = 0; - - while (!queue.isEmpty()) { - Node node = queue.pollFirst(); - int x = node.x; - int y = node.y; - - for (int i = 0; i < 4; i++) { - int nx = x + dx[i]; - int ny = y + dy[i]; - - if (0 <= nx && nx < n && 0 <= ny && ny < m) { - if (count[nx][ny] == -1) { - if (graph[nx][ny] == 0) { - count[nx][ny] = count[x][y]; - queue.offerFirst(new Node(nx, ny)); - } else { - count[nx][ny] = count[x][y] + 1; - queue.offer(new Node(nx, ny)); - } - } - } - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] line = br.readLine().split(" "); - m = Integer.parseInt(line[0]); - n = Integer.parseInt(line[1]); - - graph = new int[n][m]; - count = new int[n][m]; - - for (int i = 0; i < n; i++) { - String input = br.readLine(); - for (int j = 0; j < m; j++) { - graph[i][j] = Character.getNumericValue(input.charAt(j)); - count[i][j] = -1; - } - } - - bfs(); - - StringBuilder sb = new StringBuilder(); - sb.append(count[n][m]); - System.out.print(sb); - br.close(); - } - - private static class Node { - int x, y; - - public Node(int x, int y) { - this.x = x; - this.y = y; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_12865.java b/JAVA_2021/src/BOJ/BOJ_12865.java deleted file mode 100644 index a441881..0000000 --- a/JAVA_2021/src/BOJ/BOJ_12865.java +++ /dev/null @@ -1,37 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_12865 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - int N = Integer.parseInt(st.nextToken()); - int K = Integer.parseInt(st.nextToken()); - int[][] dp = new int[N + 1][K + 1]; - int[] weight = new int[N + 1]; - int[] value = new int[N + 1]; - - for (int i = 1; i <= N; i++) { - st = new StringTokenizer(br.readLine()); - weight[i] = Integer.parseInt(st.nextToken()); - value[i] = Integer.parseInt(st.nextToken()); - } - - for (int i = 1; i <= N; i++) { - for (int j = 1; j <= K; j++) { - dp[i][j] = dp[i - 1][j]; - if (j - weight[i]>= 0) { - dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]); - } - } - } - bw.write(dp[N][K] + "\n"); - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_13300.java b/JAVA_2021/src/BOJ/BOJ_13300.java deleted file mode 100644 index c6cd1b3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_13300.java +++ /dev/null @@ -1,41 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_13300 { - private static int[][] students; - - 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[][] students = new int[6][2]; - - for (int t = 1; t <= N; t++) { - st = new StringTokenizer(br.readLine()); - int S = Integer.parseInt(st.nextToken()); - int Y = Integer.parseInt(st.nextToken()); - students[Y - 1][S]++; - } - - // 로직 - int ans = 0; - - for (int i = 0 ; i < 6; i++) { - for (int j = 0; j < 2; j++) { - ans += (students[i][j] / K + (students[i][j] % K == 0? 0 : 1)); - } - } - - // 출력 - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1339.java b/JAVA_2021/src/BOJ/BOJ_1339.java deleted file mode 100644 index 4566670..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1339.java +++ /dev/null @@ -1,36 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class BOJ_1339 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[] alpha = new int[26]; - - int ans = 0; - int val = 9; - - for (int i = 0 ;i < N; i++) { - char[] arr = br.readLine().toCharArray(); - int pos = (int) Math.pow(10, arr.length - 1); - - for (int j =0 ; j < arr.length; j++) { - alpha[arr[j] - 'A'] += pos; - pos /= 10; - } - } - - Arrays.sort(alpha); - - for (int i = alpha.length - 1; i>= 0; i--) { - if (val == 0) break; - ans += alpha[i] * val--; - } - System.out.println(ans); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1357.java b/JAVA_2021/src/BOJ/BOJ_1357.java deleted file mode 100644 index 6b7009d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1357.java +++ /dev/null @@ -1,28 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_1357 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - int [] arr = new int[2]; - - String vote = br.readLine(); - for (int i = 0; i < vote.length(); i++) { - arr[(vote.charAt(i) - 'A')]++; - } - - if (arr[0] < arr[1]) { - System.out.println('B'); - } else if (arr[0]> arr[1]) { - System.out.println('A'); - } else { - System.out.println("Tie"); - } - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_13746.java b/JAVA_2021/src/BOJ/BOJ_13746.java deleted file mode 100644 index db9a115..0000000 --- a/JAVA_2021/src/BOJ/BOJ_13746.java +++ /dev/null @@ -1,52 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_13746 { - private static char[][] graph; - private static int N, M; - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - private static void dfs(int x, int y) { - if ( x < 0 || x>= N || y < 0 || y>= M || graph[x][y] == 'W' || graph[x][y] == 'A') return; - graph[x][y] = 'A'; - - for (int i = 0; i < 4; i++) { - int nx = x + dx[i]; - int ny = y + dy[i]; - dfs(nx, ny); - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - graph = new char[N][M]; - int ans = 0; - - for (int i = 0; i < N; i++) { - String str = br.readLine(); - for (int j = 0; j < M; j++) { - graph[i][j] = str.charAt(j); - } - } - - for (int i = 0; i < N; i++) { - for (int j = 0; j < M; j++) { - if (graph[i][j] == 'L'){ - dfs(i, j); - ans += 1; - } - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1427.java b/JAVA_2021/src/BOJ/BOJ_1427.java deleted file mode 100644 index 5f3b456..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1427.java +++ /dev/null @@ -1,27 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_1427 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - String N = st.nextToken(); - - int size = N.length(); - char[] arr = new char[size]; - - for (int i = 0; i < size; i++) { - arr[i] = N.charAt(i); - } - Arrays.sort(arr); - - for (int j = arr.length - 1; j>= 0; j--) { - System.out.print(arr[j]); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1431.java b/JAVA_2021/src/BOJ/BOJ_1431.java deleted file mode 100644 index dd524fb..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1431.java +++ /dev/null @@ -1,47 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class BOJ_1431 { - - public static int add(String s){ - int sum = 0; - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i)>= '0' && s.charAt(i) <= '9') { - sum += s.charAt(i) - '0'; - } - } - return sum; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - String[] arr= new String[N]; - - for (int i = 0; i < N; i++) { - arr[i] = br.readLine(); - } - - Arrays.sort(arr, (o1, o2) -> { - if(o1.length() < o2.length()) { - return -1; - } else if (o1.length() == o2.length()) { - if (add(o1) == add(o2)) { - return o1.compareTo(o2); - } else { - return Integer.compare(add(o1), add(o2)); - } - } else { - return 1; - } - }); - for (String i : arr) { - System.out.println(i); - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14502.java b/JAVA_2021/src/BOJ/BOJ_14502.java deleted file mode 100644 index f45bc96..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14502.java +++ /dev/null @@ -1,93 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_14502 { - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - private static int N, M, ans = 0; - private static int[][] graph, tmp; - - private static void virus(int x, int y) { - for (int dir = 0; dir < 4; dir++) { - int nx = x + dx[dir]; - int ny = y + dy[dir]; - - if (0 <= nx && nx < N && 0 <= ny && ny < M) { - if (tmp[nx][ny] == 0) { - tmp[nx][ny] = 2; - virus(nx, ny); - } - } - } - } - - private static int cntSafeArea() { - int cnt = 0; - for (int i = 0; i < N; i++) { - for (int j = 0; j < M; j++) { - if (tmp[i][j] == 0) { - cnt++; - } - } - } - return cnt; - } - - private static void dfs(int wall) { - if (wall == 3) { // 기저 조건 : 벽이 3개를 치는 경우 그래프를 복사해서 tmp에 저장하고 그것에 바이러스를 풀어서 0의 갯수 샌다. - for (int i = 0 ; i < N; i++) { - for (int j = 0; j < M; j++) { - tmp[i][j] = graph[i][j]; - } - } - - for (int i = 0; i < N; i++) { - for (int j = 0; j < M; j++) { - if (tmp[i][j] == 2) { - virus(i, j); - } - } - } - ans = Math.max(ans, cntSafeArea()); - return; - } - - for (int i = 0 ; i < N; i++) { - for (int j =0 ; j < M; j++) { - if (graph[i][j] == 0) { - graph[i][j] = 1; - - dfs(wall + 1); - graph[i][j] = 0; - } - } - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] str = br.readLine().split(" "); - N = Integer.parseInt(str[0]); - M = Integer.parseInt(str[1]); - - graph = new int[N][M]; - tmp = new int[N][M]; - - for (int i = 0 ; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0 ;j < M; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - dfs(0); - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14502_2.java b/JAVA_2021/src/BOJ/BOJ_14502_2.java deleted file mode 100644 index d305616..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14502_2.java +++ /dev/null @@ -1,114 +0,0 @@ -package BOJ; - -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 BOJ_14502_2 { - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - private static int n, m, ans = 0; - private static int[][] graph, tmp; - - private static int cntSafeArea() { - int res = 0; - for (int i = 0; i < n; i++) { - for (int j = 0; j < m; j++) { - if (tmp[i][j] == 0) { - res++; - } - } - } - return res; - } - - private static void spreadVirus(int x, int y) { - for (int dir = 0; dir < 4; dir++) { - int nx = x + dx[dir]; - int ny = y + dy[dir]; - - if (0 <= nx && nx < n && 0 <= ny && ny < m) { - if (tmp[nx][ny] == 0) { - tmp[nx][ny] = 2; - spreadVirus(nx, ny); - } - } - } - } - - private static void dfs(int wall) { - if (wall == 3) { // stop condition - for (int i = 0; i < n; i++) { - for (int j = 0; j < m; j++) { - tmp[i][j] = graph[i][j]; - } - } - - for (int i = 0; i < n; i++) { - for (int j = 0; j < m; j++) { - if (tmp[i][j] == 2) { - spreadVirus(i, j); - } - } - } - - int cnt = cntSafeArea(); - ans = ans < cnt ? cnt : ans; - return; - } - - for (int i = 0 ; i < n; i++) { // set the wall - for (int j = 0 ;j 0 && y> 0) { - System.out.println("1"); - } else if (x < 0 && y> 0) { - System.out.println("2"); - } else if (x < 0 && y < 0) { - System.out.println("3"); - } else { - System.out.println("4"); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14696.java b/JAVA_2021/src/BOJ/BOJ_14696.java deleted file mode 100644 index 1ec5a90..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14696.java +++ /dev/null @@ -1,64 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_14696 { - private static int[] arrA; - private static int[] arrB; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - - int a = Integer.parseInt(st.nextToken()); - arrA = new int[5]; - for (int j = 0; j < a; j++) { - arrA[Integer.parseInt(st.nextToken())]++; - } - - st = new StringTokenizer(br.readLine()); - - int b = Integer.parseInt(st.nextToken()); - arrB = new int[5]; - for (int j = 0; j < b; j++) { - arrB[Integer.parseInt(st.nextToken())]++; - } - System.out.println(calc(arrA, arrB)); - } - br.close(); - } - - private static char calc (int[] a, int[] b) { - if (a[4]> b[4]) { - return 'A'; - } else if (a[4] < b[4]) { - return 'B'; - } else { - if (a[3]> b[3]) { - return 'A'; - } else if (a[3] < b[3]) { - return 'B'; - } else { - if (a[2]> b[2]) { - return 'A'; - } else if (a[2] < b[2]) { - return 'B'; - } else { - if (a[1]> b[1]) { - return 'A'; - } else if (a[1] < b[1]) { - return 'B'; - } else { - return 'D'; - } - } - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14697.java b/JAVA_2021/src/BOJ/BOJ_14697.java deleted file mode 100644 index 31c807c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14697.java +++ /dev/null @@ -1,29 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_14697 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - int N = Integer.parseInt(st.nextToken()); - - int ans = 0; - for (int i = 0 ; i <= 50; i++) { - for (int j = 0 ; j <= 50; j++) { - for (int k = 0 ; k <= 50; k++) { - if ((a * i) + (b * j) + (c * k) == N) ans = 1; - } - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1475.java b/JAVA_2021/src/BOJ/BOJ_1475.java deleted file mode 100644 index ec69433..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1475.java +++ /dev/null @@ -1,25 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_1475 { - public static int[] num = new int[10]; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String s = br.readLine(); - - for (int i = 0; i < s.length(); i++) { - num[(s.charAt(i)) - '0']++; - } - num[6] = (num[6] + num[9] + 1) / 2; - num[9] = 0; - - int max = 0; - for (int i = 0 ; i < 10; i++) { - max = Math.max(num[i], max); - } - System.out.println(max); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14889.java b/JAVA_2021/src/BOJ/BOJ_14889.java deleted file mode 100644 index 98f7969..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14889.java +++ /dev/null @@ -1,59 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_14889 { - private static int[][] graph; - private static int[] select; - private static int N, ans; - - private static void dfs(int idx, int depth) { - if (depth == N / 2) { - int start = 0; - int link = 0; - - for (int i = 0; i < N; i++) { - for (int j = 0 ; j < N; j ++) { - if (select[i] != 0 && select[j] != 0) { - start += graph[i][j]; - } else if (select[i] == 0 && select[j] == 0) { - link += graph[i][j]; - } - } - } - ans = Math.min(ans, Math.abs(start - link)); - } - - for (int i = idx; i < N; i++) { - if (select[i] != 0) { - continue; - } - select[i] = 1; - dfs(i + 1, depth + 1); - select[i] = 0; - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - graph = new int[N][N]; - select = new int[N]; - ans = 123456789; - - - for (int i = 0 ; i < N; i ++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0; j < N; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - dfs(0, 0); - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14923.java b/JAVA_2021/src/BOJ/BOJ_14923.java deleted file mode 100644 index fb8452d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14923.java +++ /dev/null @@ -1,93 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.Queue; -import java.util.StringTokenizer; - -public class BOJ_14923 { - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - private static int N, M, hx, hy, ex, ey; - private static int[][] graph; - private static boolean[][][] visited; - - private static int bfs(){ - int ans = 0; - Queue queue = new LinkedList(); - queue.offer(new Node(hx, hy, 0)); - visited = new boolean[N][M][2]; - visited[hx][hy][0] = true; - - while (!queue.isEmpty()) { - ++ans; - int size = queue.size(); - while (size> 0) { - Node node = queue.poll(); - for (int i = 0; i < 4; i++) { - int nx = node.x + dx[i]; - int ny = node.y + dy[i]; - - if (0 <= nx && nx < N && 0 <= ny && ny < M) { - if (graph[nx][ny] == 1) { // 벽을 만나 - if (node.cnt == 0 && !visited[nx][ny][node.cnt + 1]) { // 마법을 아직 안써 - if (nx == ex && ny == ey) return ans; - queue.offer(new Node(nx, ny, node.cnt + 1)); - visited[nx][ny][node.cnt + 1] = true; - } - } else { // 길을 가 - if (!visited[nx][ny][node.cnt]) { - if (nx == ex && ny == ey) return ans; - queue.offer(new Node(nx, ny, node.cnt)); - visited[nx][ny][node.cnt] = true; - } - } - } - } - size--; - } - } - return -1; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] line = br.readLine().split(" "); - N = Integer.parseInt(line[0]); - M = Integer.parseInt(line[1]); - graph = new int[N][M]; - - StringTokenizer st = new StringTokenizer(br.readLine()); - hx = Integer.parseInt(st.nextToken()) - 1; - hy = Integer.parseInt(st.nextToken()) - 1; - - st = new StringTokenizer(br.readLine()); - ex = Integer.parseInt(st.nextToken()) - 1; - ey = Integer.parseInt(st.nextToken()) - 1; - - for (int i = 0 ; i < N; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0 ; j < M; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - StringBuilder sb = new StringBuilder(); - sb.append(bfs()).append("\n"); - System.out.print(sb); - br.close(); - } - - private static class Node { - int x, y, cnt; - - public Node(int x, int y, int cnt) { - this.x = x; - this.y = y; - this.cnt = cnt; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14938.java b/JAVA_2021/src/BOJ/BOJ_14938.java deleted file mode 100644 index 24f3d14..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14938.java +++ /dev/null @@ -1,107 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.PriorityQueue; -import java.util.StringTokenizer; - -public class BOJ_14938 { - private static final int INF = (int) 1e9; - private static int N, M, R; // 지역의 갯수, 수색 범위, 길의 갯수 - private static int[] items; // 아이템의 갯수 - private static ArrayList> graph; // 인접리스트 선언 - private static int[] d; // 최단 거리 배열 - private static boolean[] visited; // 방문 확인 - - private static int dijikstra(int s) { // 우선 순위 큐 사용 - Arrays.fill(d, INF); // 배열에 값들 초기화 - Arrays.fill(visited, false); - - PriorityQueue pq = new PriorityQueue(); - pq.offer(new Node(0, s)); // 처음 시작 노드는 거리 배열이 0이다. - d[s] = 0; // 방문 처리 - - while (!pq.isEmpty()) { - Node node = pq.poll(); - int now = node.idx; // 거리가 가장 짧은 노드의 번호를 뽑아줌 - - if (!visited[now]) { - visited[now] = true; - - for (Node a : graph.get(now)) { - if (!visited[a.idx] && d[a.idx]> d[now] + a.dist) { // 방문한적이 없고 현재 노드를 거쳐 다른 노드로 이동하는 거리가 더 짧을경우 - d[a.idx] = d[now] + a.dist; // 거리 배열에 값을 짧은 쪽으로 업데이트 - pq.add(new Node(d[a.idx], a.idx)); // 그 노드의 값을 Priority Queue에 저장 - } - } - } - } - - int res = 0; - for (int i = 1; i <= N; i++) { - if (d[i] <= M) { // 거리 배열에 있는 값이 수색 범위 이내에 있다면 - res += items[i]; // 아이템을 전부 더해준다. - } - } - return res; - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - R = Integer.parseInt(st.nextToken()); - - items = new int[N + 1]; - - st = new StringTokenizer(br.readLine()); - for (int i = 1; i <= N; i++) { - items[i] = Integer.parseInt(st.nextToken()); - } - - graph = new ArrayList(); - for (int i =0 ; i <= N; i++) { - graph.add(new ArrayList()); - } - - for (int i = 1; i <= R; i++) { - st = new StringTokenizer(br.readLine()); - - int from = Integer.parseInt(st.nextToken()); - int to = Integer.parseInt(st.nextToken()); - int weight = Integer.parseInt(st.nextToken()); - - graph.get(from).add(new Node(weight, to)); // 양방향 인접리스트 구현 - graph.get(to).add(new Node(weight, from)); - } - - d = new int[N + 1]; - visited = new boolean[N + 1]; - - int ans = 0; - for (int i = 1; i <= N; i++) { - ans = Math.max(ans, dijikstra(i)); // 1번 노드부터 N번 노드까지 얻은 아이템중 최댓값을 저장 - } - System.out.println(ans); - br.close(); - } - - private static class Node implements Comparable { - int dist, idx; - - public Node(int dist, int idx) { - this.dist = dist; - this.idx = idx; - } - - @Override - public int compareTo(Node o) { - return dist - o.dist; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_14938_FW.java b/JAVA_2021/src/BOJ/BOJ_14938_FW.java deleted file mode 100644 index e56b470..0000000 --- a/JAVA_2021/src/BOJ/BOJ_14938_FW.java +++ /dev/null @@ -1,66 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_14938_FW { - private static final int INF = (int) 1e9; - - 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[] items = new int[N]; - st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i < N; i++) { - items[i] = Integer.parseInt(st.nextToken()); - } - - int[][] graph = new int[N + 1][N + 1]; - for (int i = 0; i <= N; i++) { - Arrays.fill(graph[i], INF); - } - - for (int i = 1 ; i <= N; i++) { - graph[i][i] = 0; - } - - - for (int i = 0 ; i < R; i++) { - st = new StringTokenizer(br.readLine()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - - graph[a][b] = graph[b][a] = c; // 양방향으로 데이터를 넣어준다 - } - - - for (int z = 1; z < N + 1; z++) { // Floyd - Warshall - for (int a = 1; a < N + 1; a++) { - for (int b = 1; b < N + 1; b++) { - graph[a][b] = Math.min(graph[a][b], graph[a][z] + graph[z][b]); - } - } - } - - int ans = 0; - for (int i = 1; i <= N; i++) { - int tmp = 0; - for (int j = 1; j <= N; j++) { - if (graph[i][j] <= M) tmp += items[j - 1]; - } - ans = Math.max(ans, tmp); - } - System.out.println(ans); - br.close(); - } -} - diff --git a/JAVA_2021/src/BOJ/BOJ_15184.java b/JAVA_2021/src/BOJ/BOJ_15184.java deleted file mode 100644 index 57f73f5..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15184.java +++ /dev/null @@ -1,26 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Locale; - -public class BOJ_15184 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String s = br.readLine().toUpperCase(Locale.ROOT); - - int[] cnt = new int[26]; - - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i)>= 'A' && s.charAt(i) <= 'Z') cnt[s.charAt(i) - 'A']++; - } - - for (int i = 0; i < 26; i++) { - System.out.print((char) (i + 65) + " | "); - while (cnt[i] != 0) { - System.out.print('*'); - cnt[i]--; - } - System.out.println(); - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_1546.java b/JAVA_2021/src/BOJ/BOJ_1546.java deleted file mode 100644 index 7352b7c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1546.java +++ /dev/null @@ -1,34 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1546 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - int[] arr = new int[N]; - double sum = 0; - int max = Integer.MIN_VALUE; - double ans; - - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - for (int i = 0; i < arr.length; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - if (arr[i]> max) { - max = arr[i]; - } - } - - for (int i = 0; i < arr.length; i++) { - sum += (double) arr[i] / max * 100; - } - - ans = sum / (double) N; - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15649.java b/JAVA_2021/src/BOJ/BOJ_15649.java deleted file mode 100644 index 3e20b8e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15649.java +++ /dev/null @@ -1,49 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_15649 { - private static int N, M; - private static int[] arr; - private static boolean[] check; - private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - private static void recursive(int depth, int start) throws IOException { - if (depth == M) { - for (int i = 0; i < M; i++) { - bw.write(arr[i] + " "); - } - bw.write("\n"); - return; - } - - for (int i = start; i <= N; i++) { - if (check[i]) continue; - - arr[depth] = i; - check[i] = true; - recursive(depth + 1, start + 1); - check[i] = false; - } - - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[M]; - check = new boolean[N + 1]; - - - recursive(0, 1); - - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15650.java b/JAVA_2021/src/BOJ/BOJ_15650.java deleted file mode 100644 index 2c37d6f..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15650.java +++ /dev/null @@ -1,42 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_15650 { - private static int N, M; - private static int[] arr; - private static boolean[] chk; - - private static void Recursive(int depth, int start) { - if (depth == M) { - for (int i = 0; i < arr.length; i++) { - System.out.print(arr[i] + " "); - } - System.out.println(); - return; - } - - for (int i = start; i <= N; i++) { - arr[depth] = i; - Recursive(depth + 1, i + 1); - } - - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[M]; - - Recursive(0, 1); - - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15651.java b/JAVA_2021/src/BOJ/BOJ_15651.java deleted file mode 100644 index 8f7e480..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15651.java +++ /dev/null @@ -1,30 +0,0 @@ -package BOJ; - -import java.util.Arrays; -import java.util.Scanner; - -class Boj_15651 { - private static int[] arr = new int[2]; - private static int N, M; - private static void Recursive (int depth) { - if (depth == 2) { - for (int i = 0; i queue; - private static int Redx, Redy, Bluex, Bluey; - - private static int bfs() { - while (!queue.isEmpty()) { - Pair blue, red; - - if (queue.peek().ty == 'B') { - blue = queue.poll(); - red = queue.poll(); - } else { - red = queue.poll(); - blue = queue.poll(); - } - - boolean blueFin, redFin, afterR; - int bx, by, rx, ry; - int bnx, bny, rnx, rny; - - for (int i = 0; i < 4; i++) { - blueFin = false; - redFin = false; - afterR = false; - - bx = blue.x; - by = blue.y; - rx = red.x; - ry = red.y; - - while (true) { - bnx = bx + dx[i]; - bny = by + dy[i]; - if (bnx == rx && bny == ry) afterR = true; - if (graph[bnx][bny] == '#') break; - if (graph[bnx][bny] == 'O') { - blueFin = true; - break; - } - bx = bnx; - by = bny; - } - - while (true) { - rnx = rx + dx[i]; - rny = ry + dy[i]; - if (graph[rnx][rny] == '#') break; - if (graph[rnx][rny] == 'O') { - redFin = true; - break; - } - rx = rnx; - ry = rny; - } - - if (blueFin) continue; - if (redFin) return red.time + 1; - - if (bx == rx && by == ry) { - if (afterR) { - bx -= dx[i]; - by -= dy[i]; - } else { - rx -= dx[i]; - ry -= dy[i]; - } - } - if (visited[rx][ry][bx][by]) continue; - visited[rx][ry][bx][by] = true; - - queue.offer(new Pair(bx, by, blue.time + 1, 'B')); - queue.offer(new Pair(rx, ry, red.time + 1, 'R')); - } - } - return -1; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - graph = new char[N][M]; - visited = new boolean[N][M][N][M]; - - queue = new LinkedList(); - - for (int i = 0 ; i < N; i++) { - char[] c = br.readLine().toCharArray(); - for (int j = 0 ; j < M; j++) { - if(c[j] == 'R') { - graph[i][j] = '.'; - Redx = i; - Redy = j; - queue.offer(new Pair(i, j, 0, c[j])); - } else if (c[j] == 'B') { - graph[i][j] = '.'; - Bluex = i; - Bluey = j; - queue.offer(new Pair(i, j, 0, c[j])); - } else { - graph[i][j] = c[j]; - } - } - } - - visited[Redx][Redy][Bluex][Bluey] = true; - System.out.println(bfs()); - } - - static class Pair { - int x, y, time; - char ty; - - public Pair(int x, int y, int time, char ty) { - this.x = x; - this.y = y; - this.time = time; - this.ty = ty; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15654.java b/JAVA_2021/src/BOJ/BOJ_15654.java deleted file mode 100644 index 2cca8d3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15654.java +++ /dev/null @@ -1,56 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_15654 { - private static int N, M; - private static int[] arr; - private static boolean[] chk; - private static int[] tmp; - private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - private static void Recursive(int depth) throws IOException{ - if (depth == M) { - for (int i = 0; i < M; i++) { - bw.write(tmp[i] + " "); - } - bw.write("\n"); - return; - } - - for (int i = 1; i <= N; i++) { - if (chk[i]) continue; - - tmp[depth] = arr[i - 1]; - chk[i] = true; - Recursive(depth + 1); - chk[i] = false; - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[N]; - chk = new boolean[N + 1]; - tmp = new int[M]; - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(arr); - Recursive(0); - - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15655.java b/JAVA_2021/src/BOJ/BOJ_15655.java deleted file mode 100644 index 07fea17..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15655.java +++ /dev/null @@ -1,51 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_15655 { - private static int N, M; - private static int[] arr; - private static int[] tmp; - private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - private static void Recursive(int depth, int start) throws IOException { - if (depth == M) { - for (int i = 0; i < M; i++) { - bw.write(tmp[i] + " "); - } - bw.write("\n"); - return; - } - - for (int i = start; i <= N; i++) { - tmp[depth] = arr[i - 1]; - Recursive(depth + 1, i + 1); - - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[N]; - tmp = new int[M]; - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(arr); - Recursive(0, 1); - - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15656.java b/JAVA_2021/src/BOJ/BOJ_15656.java deleted file mode 100644 index c178434..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15656.java +++ /dev/null @@ -1,51 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_15656 { - private static int N, M; - private static int[] arr; - private static int[] tmp; - private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - private static void Recursive(int depth, int start) throws IOException { - if (depth == M) { - for (int i = 0; i < M; i++) { - bw.write(tmp[i] + " "); - } - bw.write("\n"); - return; - } - - for (int i = start; i < N; i++) { - tmp[depth] = arr[i]; - Recursive(depth + 1, i); - - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[N]; - tmp = new int[M]; - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(arr); - Recursive(0, 0); - - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15663.java b/JAVA_2021/src/BOJ/BOJ_15663.java deleted file mode 100644 index 86aa102..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15663.java +++ /dev/null @@ -1,54 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.StringTokenizer; - -public class BOJ_15663 { - private static int N, M; - private static int[] arr; - private static int[] tmp; - private static boolean[] chk; - private static LinkedHashSet ans; - - private static void Recursive(int depth) throws IOException { - if (depth == M) { - StringBuilder sb = new StringBuilder(); - for (int i : tmp) sb.append(i).append(' '); - ans.add(sb.toString()); - return; - } - - for (int i = 0; i < N; i++) { - if (chk[i]) continue; - - chk[i] = true; - tmp[depth] = arr[i]; - Recursive(depth + 1); - chk[i] = false; - } - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[N]; - tmp = new int[M]; - chk = new boolean[N + 1]; - ans = new LinkedHashSet(); - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(arr); - Recursive(0); - ans.forEach(System.out::println); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15664.java b/JAVA_2021/src/BOJ/BOJ_15664.java deleted file mode 100644 index 346924a..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15664.java +++ /dev/null @@ -1,54 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.StringTokenizer; - -public class BOJ_15664 { - private static int N, M; - private static int[] arr; - private static int[] tmp; - private static boolean[] chk; - private static LinkedHashSet ans; - - private static void Recursive(int depth, int start) throws IOException { - if (depth == M) { - StringBuilder sb = new StringBuilder(); - for (int i : tmp) sb.append(i).append(' '); - ans.add(sb.toString()); - return; - } - - for (int i = start; i < N; i++) { - if (chk[i]) continue; - - tmp[depth] = arr[i]; - chk[i] = true; - Recursive(depth + 1, i + 1); - chk[i] = false; - } - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[N]; - tmp = new int[M]; - chk = new boolean[N + 1]; - ans = new LinkedHashSet(); - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(arr); - Recursive(0, 0); - ans.forEach(System.out::println); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15665.java b/JAVA_2021/src/BOJ/BOJ_15665.java deleted file mode 100644 index 64636f5..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15665.java +++ /dev/null @@ -1,49 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_15665 { - private static int N, M; - private static int[] arr; - private static int[] tmp; - - private static void Recursive(int depth, StringBuilder sb){ - if (depth == M) { - for (int i = 0; i < M; i++) { - sb.append(tmp[i] + " "); - } - sb.append("\n"); - return; - } - int num = 0; - for (int i = 0; i < N; i++) { - if (num == arr[i]) continue; - tmp[depth] = arr[i]; - Recursive(depth + 1, sb); - num = arr[i]; - } - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[N]; - tmp = new int[M]; - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - StringBuilder sb = new StringBuilder(); - - Arrays.sort(arr); - Recursive(0, sb); - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15666.java b/JAVA_2021/src/BOJ/BOJ_15666.java deleted file mode 100644 index b76e54e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15666.java +++ /dev/null @@ -1,51 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.StringTokenizer; - -public class BOJ_15666 { - private static int N, M; - private static int[] arr; - private static int[] tmp; - private static LinkedHashSet ans; - - private static void Recursive(int depth, int start){ - if (depth == M) { - StringBuilder sb = new StringBuilder(); - for (int i : tmp) sb.append(i).append(' '); - ans.add(sb.toString()); - return; - } - - int num = 0; - for (int i = start; i < N; i++) { - if (num == arr[i]) continue; - tmp[depth] = arr[i]; - Recursive(depth + 1, i); - num = arr[i]; - } - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - - arr = new int[N]; - tmp = new int[M]; - ans = new LinkedHashSet(); - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - Arrays.sort(arr); - Recursive(0, 0); - ans.forEach(System.out::println); - br.close(); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_15685.java b/JAVA_2021/src/BOJ/BOJ_15685.java deleted file mode 100644 index e0a42e2..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15685.java +++ /dev/null @@ -1,56 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_15685 { // 드래곤 커브 - private static int[] dx = {1, 0, -1, 0}; - private static int[] dy = {0, -1, 0, 1}; - private static int N, x, y, d, g; - private static int[][] graph; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - graph = new int[101][101]; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - x = Integer.parseInt(st.nextToken()); - y = Integer.parseInt(st.nextToken()); - d = Integer.parseInt(st.nextToken()); - g = Integer.parseInt(st.nextToken()); - graph[x][y] = 1; - int[] arr_g = new int[(int) Math.pow(2, g)]; - arr_g[0] = d; - for (int j = 0 ; j< g; j++) { - for (int k = (int) Math.pow(2, j); k < (int) Math.pow(2, j + 1); k++) { - arr_g[k] = (arr_g[(int) Math.pow(2, j + 1) - (k + 1)] + 1) % 4; - } - } - for (int k : arr_g) { - x += dx[k]; - y += dy[k]; - graph[x][y] = 1; - } - } - - int answer = 0; - for (int i = 0; i < 100; i++) { - for (int j = 0 ; j <100; j++) { - if (graph[i][j] == 1) { - if (graph[i + 1][j] == 1 && graph[i][j + 1] == 1 && graph[i + 1][j + 1] == 1) { - answer++; - } - } - } - } - - StringBuilder sb = new StringBuilder(); - sb.append(answer); - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_15686.java b/JAVA_2021/src/BOJ/BOJ_15686.java deleted file mode 100644 index d96bb1a..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15686.java +++ /dev/null @@ -1,85 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.StringTokenizer; - -public class BOJ_15686 { - private static int N, M; - private static int[][] graph; - private static int ans = 123456789; - private static ArrayList house = new ArrayList(); - private static ArrayList chicken = new ArrayList(); - - private static void Combination(int depth, int n, int r, boolean[] visited) { - if (r == 0) { - ArrayList list = new ArrayList(); // list에 뽑힌 치킨집 담을 예정 - for (int i = 0; i < n; i++) { - if (visited[i]) { - list.add(new Pair(chicken.get(i).x, chicken.get(i).y)); - } - } - ans = Math.min(ans, DistanceCalc(list)); // 치킨거리 최소값 담기 - return; - } - if (depth == n) return; - - visited[depth] = true; - Combination(depth + 1, n, r - 1, visited); - - visited[depth] = false; - Combination(depth + 1, n, r, visited); - } - - private static int DistanceCalc (ArrayList list) { // 집과 가장 가까운 치킨집의 치킨거리 구하고 - int sum = 0; - - for (int i = 0; i < house.size(); i++) { - int tmp = 123456789; - for (int j = 0; j < list.size(); j++) { - int distance = Math.abs(house.get(i).x - list.get(j).x) + Math.abs(house.get(i).y - list.get(j).y); - tmp = Math.min(tmp, distance); - } - sum += tmp; // 모든 치킨거리의 합을 구함 - } - return sum; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - graph = new int[N][N]; - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0; j < N; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); // 맵에 데이터 저장 - if (graph[i][j] == 1) { // 집이 있으면 house 배열에 좌표를 쌍으로 묶어 저장 - house.add(new Pair(i, j)); - } else if (graph[i][j] == 2) { // 치킨집이 있으면 chicken 배열에 좌표를 쌍으로 묶어 저장 - chicken.add(new Pair(i, j)); - } - } - } - - boolean[] visited = new boolean[chicken.size()]; - Combination(0, chicken.size(), M, visited); // 치킨집의 갯수와 뽑을 수를 지정해서 조합을 돌려본다 - System.out.println(ans); - br.close(); - } - - static class Pair { - int x; - int y; - - public Pair(int x, int y) { - this.x = x; - this.y = y; - } - } -} - diff --git a/JAVA_2021/src/BOJ/BOJ_15688.java b/JAVA_2021/src/BOJ/BOJ_15688.java deleted file mode 100644 index f193869..0000000 --- a/JAVA_2021/src/BOJ/BOJ_15688.java +++ /dev/null @@ -1,25 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; - -public class BOJ_15688 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - - int N = Integer.parseInt(br.readLine()); - ArrayList arr = new ArrayList(); - for (int i = 0; i < N; i++) { - int num = Integer.parseInt(br.readLine()); - arr.add(num); - } - arr.sort(null); - for (int i : arr) { - sb.append(i + "\n"); - } - System.out.println(sb); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1592.java b/JAVA_2021/src/BOJ/BOJ_1592.java deleted file mode 100644 index f036148..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1592.java +++ /dev/null @@ -1,39 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1592 { - 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 l = Integer.parseInt(st.nextToken()); - - int[] arr = new int[n + 1]; - int ans = 0; - int idx = 1; - arr[1] = 1; - - while (true) { - idx = (arr[idx] % 2 == 1) ? (idx + l) : (idx - l); - - if (idx> n) { - idx %= n; - } else if (idx < 1){ - idx += n; - } - - arr[idx]++; - ans++; - - if (arr[idx] == m) break; - } - System.out.println(ans); - br.close(); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1600.java b/JAVA_2021/src/BOJ/BOJ_1600.java deleted file mode 100644 index b494efd..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1600.java +++ /dev/null @@ -1,98 +0,0 @@ -package BOJ; - -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 BOJ_1600 { - private static int K, W, H, ans; - private static int[][] graph; - private static int[][][] visited; - private static Queue queue; - - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - private static int[] horse_dx = {2, 1, 2, 1, -2, -1, -2, -1}; - private static int[] horse_dy = {1, 2, -1, -2, 1, 2, -1, -2}; - - private static int bfs() { - while (!queue.isEmpty()) { - Node monkey = queue.poll(); - int x = monkey.x; - int y = monkey.y; - int k = monkey.k; - int cnt = monkey.cnt; - if (x == H - 1 && y == W - 1) { - ans = visited[x][y][k]; - break; - } - - if (k < K) { - for (int d = 0; d < 8; d++) { - int nx = x + horse_dx[d]; - int ny = y + horse_dy[d]; - if (0 <= nx && nx < H && 0 <= ny && ny < W) { - if (visited[nx][ny][k + 1] == 0 && graph[nx][ny] == 0) { - visited[nx][ny][k + 1] = cnt + 1; - queue.offer(new Node(nx, ny, k + 1, cnt + 1)); - } - } - } - } - - for (int d = 0; d < 4; d++) { - int nx = x + dx[d]; - int ny = y + dy[d]; - if (0 <= nx && nx < H && 0 <= ny && ny < W) { - if (visited[nx][ny][k] == 0 && graph[nx][ny] == 0) { - visited[nx][ny][k] = cnt + 1; - queue.offer(new Node(nx, ny, k, cnt + 1)); - } - } - } - } - return ans; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - K = Integer.parseInt(br.readLine()); - - String[] line = br.readLine().split(" "); - W = Integer.parseInt(line[0]); - H = Integer.parseInt(line[1]); - - graph = new int[H][W]; - visited = new int[H][W][K + 1]; - - for (int i = 0;i < H; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0 ; j < W; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - ans = -1; - queue = new LinkedList(); - queue.offer(new Node(0, 0, 0, 0)); - visited[0][0][0] = 0; - System.out.println(bfs()); - br.close(); - - } - - - private static class Node { - int x, y, k, cnt; - - public Node(int x, int y, int k, int cnt) { - this.x = x; - this.y = y; - this.k = k; - this.cnt = cnt; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1620.java b/JAVA_2021/src/BOJ/BOJ_1620.java deleted file mode 100644 index 1edf3fa..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1620.java +++ /dev/null @@ -1,33 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Map; -import java.util.StringTokenizer; - -public class BOJ_1620 { - - 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()); - - Map map = new HashMap(); - for (int i =0; i < N; i++) { - String pokemon = br.readLine(); - String num = Integer.toString(i + 1); - map.put(pokemon, num); - map.put(num, pokemon); - } - - StringBuilder sb = new StringBuilder(M); - - for (int i = 0; i < M; i++) { - sb.append(map.get(br.readLine()) + "\n"); - } - System.out.println(sb); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_16562.java b/JAVA_2021/src/BOJ/BOJ_16562.java deleted file mode 100644 index df91cd3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_16562.java +++ /dev/null @@ -1,70 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_16562 { - private static int[] tmp, money; - - private static int Find(int x) { - if (x == tmp[x]) return x; - return tmp[x] = Find(tmp[x]); - } - - private static void Union(int x, int y) { - x = Find(x); - y = Find(y); - - if (money[x] < money[y]) { - tmp[y] = tmp[x]; - } else { - tmp[x] = tmp[y]; - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] line = br.readLine().split(" "); - int N = Integer.parseInt(line[0]); - int M = Integer.parseInt(line[1]); - int K = Integer.parseInt(line[2]); - - tmp = new int[N + 1]; - for (int i = 0; i < N + 1; i++) { - tmp[i] = i; - } - - money = new int[N + 1]; - money[0] = 0; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 1 ; i <= N; i++) { - money[i] = Integer.parseInt(st.nextToken()); - } - - for (int i = 0; i < M; i++) { - st = new StringTokenizer(br.readLine()); - int v = Integer.parseInt(st.nextToken()); - int w = Integer.parseInt(st.nextToken()); - Union(v, w); - } - - int ans = 0; - for (int i = 0; i < N + 1; i++) { - if (i == tmp[i]) { - ans += money[i]; - } - } - - if (K - ans < 0) { - System.out.println("Oh no"); - } else { - System.out.println(ans); - } - - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_16918.java b/JAVA_2021/src/BOJ/BOJ_16918.java deleted file mode 100644 index 2f2e637..0000000 --- a/JAVA_2021/src/BOJ/BOJ_16918.java +++ /dev/null @@ -1,92 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Deque; -import java.util.LinkedList; -import java.util.StringTokenizer; - -public class BOJ_16918 { // 봄버맨 - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - private static int r, c, n; - private static char[][] graph; - private static Deque queue; - - private static void allBombSet() { - for (int i = 0; i 0){ - queue = new LinkedList(); - for (int i = 0 ; i < r; i++) { - for (int j = 0 ; j < c; j++) { - if (graph[i][j] == 'O') - queue.offer(new Node(i, j)); - } - } - allBombSet(); - n--; - bomb(); - n--; - } - - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < r; i++) { - for (int j = 0; j < c; j++) { - sb.append(graph[i][j]); - } - sb.append("\n"); - } - System.out.print(sb); - br.close(); - } - - private static class Node{ - int x, y; - - public Node(int x, int y) { - this.x = x; - this.y = y; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_16922.java b/JAVA_2021/src/BOJ/BOJ_16922.java deleted file mode 100644 index 673b239..0000000 --- a/JAVA_2021/src/BOJ/BOJ_16922.java +++ /dev/null @@ -1,31 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class BOJ_16922 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - boolean[] chk = new boolean[100000]; - - for (int i = 0 ; i <= N; i++) { - for (int j = 0 ; j <= N - i; j++) { - for (int k = 0 ; k <= N - i - j; k++) { - int tmp = N - i - j - k; - int sum = i + j * 5 + k * 10 + tmp * 50; - chk[sum] = true; - } - } - } - int ans = 0; - for (int i = 1 ; i < chk.length; i++) { - if (chk[i]) ans++; - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_16926.java b/JAVA_2021/src/BOJ/BOJ_16926.java deleted file mode 100644 index cf72e6e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_16926.java +++ /dev/null @@ -1,79 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_16926 { - private static int N, M, R; - private static int[] dx = {0, 1, 0, -1}; // 반시계방향 지정 - private static int[] dy = {1, 0, -1, 0}; - private static int[][] arr; - - private static void find(int s) { - for (int i = 0 ; i < s; i ++) { - int x = i; // 회전 할 횟수마다 기준이 되는 좌표를 잡는다. - int y = i; - int dir = 0; // 아래부터 이동 - int tmp = arr[x][y]; // 값 스왑할 때, (1) tmp = a 부분 - - while (dir < 4) { // 반시계 방향으로 돌아보자 - int nx = x + dx[dir]; - int ny = y + dy[dir]; - - if (i <= nx && nx < N - i && i <= ny && ny < M - i) { // 범위 이내라면 - arr[x][y] = arr[nx][ny]; // (2) a = b 부분 - x = nx; // 기준이 되는 그 다음 좌표 지정 - y = ny; - } else { // 범위를 벗어난다면 - dir++; // 방향을 바꿔준다. - } - } - arr[i + 1][i] = tmp; // (3) b = tmp 부분 - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - R = Integer.parseInt(st.nextToken()); - - arr = new int[N][M]; - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0; j < M; j++) { - arr[i][j] = Integer.parseInt(st.nextToken()); - } - } - -// 사각형의 내부 사각형이 있다면 회전시키기 위해서 -// 높이, 너비중 작은값으로 반 쪼개본다. -// 1 1 -// 1 1 라면 1이 나올테고 -// -// 1 1 1 1 -// 1 1 1 1 -// 1 1 1 1 -// 1 1 1 1 면 2가 나올테니 - - for (int i = 0 ; i < R; i++) { - find(Math.min(N, M) / 2); - } - - for (int i = 0; i < N; i++) { - for (int j = 0; j< M; j++) { - bw.write(arr[i][j] + " "); - } - bw.write('\n'); - } - - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_16927.java b/JAVA_2021/src/BOJ/BOJ_16927.java deleted file mode 100644 index 3b5dc8e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_16927.java +++ /dev/null @@ -1,88 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_16927 { - private static int[] dx = {0, 1, 0, -1}; - private static int[] dy = {1, 0, -1, 0}; - private static int[][] graph; - private static int[][] visited; - private static int N, M, R; - private static int sX, sY, eX, eY; - - private static int dfs(int x, int y, int idx) { - visited[x][y]++; - int nx = x + dx[idx]; - int ny = y + dy[idx]; - - if (nx < sX || ny < sY || nx> eX || ny> eY) { - idx++; - nx = x + dx[idx]; - ny = y + dy[idx]; - } - - if (visited[nx][ny] == visited[x][y]) { - int tmp = graph[x][y]; - graph[x][y] = graph[nx][ny]; - return tmp; - } - - int tmp = graph[x][y]; - graph[x][y] = dfs(nx, ny, idx); - return tmp; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - R = Integer.parseInt(st.nextToken()); - - graph = new int[N][M]; - visited = new int[N][M]; - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0; j < M; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - sX = 0; - sY = 0; - eX = N - 1; - eY = M - 1; - - int n = N; - int m = M; - - for (int i = 0; ; i++) { - for (int j = 0; j < R % ((n - 1) * 2 + (m - 1) * 2); j++) { - dfs(i, i, 0); - } - - sX++; - sY++; - eX--; - eY--; - n -= 2; - m -= 2; - - if (sX> eX || sY> eY) break; - } - - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < N; i++) { - for (int j = 0; j < M; j++) { - sb.append(graph[i][j] + " "); - } - sb.append("\n"); - } - System.out.println(sb.toString()); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_16935.java b/JAVA_2021/src/BOJ/BOJ_16935.java deleted file mode 100644 index 8c52a2f..0000000 --- a/JAVA_2021/src/BOJ/BOJ_16935.java +++ /dev/null @@ -1,186 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.util.ArrayList; -import java.util.List; -import java.util.StringTokenizer; - -public class BOJ_16935 { - static int n, m, r; - static int[] dx = { 0, 1, 0, -1 }; - static int[] dy = { 1, 0, -1, 0 }; - static int[][] arr; - static List List; - static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - static void one() { - for (int i = 1; i <= arr.length / 2; i++) { - int[] temp = arr[i]; - arr[i] = arr[arr.length - i]; - arr[arr.length - i] = temp; - } - - } - - static void two() { - for (int i = 1; i < arr.length; i++) { - for (int j = 1; j <= arr[i].length / 2; j++) { - int temp = arr[i][j]; - arr[i][j] = arr[i][arr[i].length - j]; - arr[i][arr[i].length - j] = temp; - } - } - } - - static void three() { - int[][] temp = copy(arr); - n = temp.length -1; - m = temp[0].length - 1; - arr = new int[m+1][n+1]; - for (int i = 1, j = n; j>= 1; j--, i++) { - for (int k = 1; k <= m; k++) { - arr[k][j] = temp[i][k]; - } - } - } - - static void four() { - int[][] temp = copy(arr); - n = temp.length -1; - m = temp[0].length - 1; - arr = new int[m+1][n+1]; - for (int i = 1, j = 1; j <= n; j++, i++) { - for (int k = 1; k <= m; k++) { - arr[k][j] = temp[i][m - k + 1]; - } - } - } - - static void five() { - int[][] temp = copy(arr); - n = temp.length-1; - m = temp[0].length-1; - // 1 -> 2 - for (int j = 1; j <= n / 2; j++) { - for (int i = 1; i <= m / 2; i++) { - arr[j][m / 2 + i] = temp[j][i]; - } - } - // 3 -> 4 - for (int j = n / 2 + 1; j <= n; j++) { - for (int i = m / 2 + 1; i <= m; i++) { - arr[j][i - m / 2] = temp[j][i]; - } - } - - // 2 -> 3 - for (int j = 1; j <= n / 2; j++) { - for (int i = m / 2 + 1; i <= m; i++) { - arr[j + n / 2][i] = temp[j][i]; - } - } - - // 4 -> 1 - for (int j = n / 2 + 1; j <= n; j++) { - for (int i = 1; i <= m / 2; i++) { - arr[j - n / 2][i] = temp[j][i]; - } - } - } - - static void six() { - int[][] temp = copy(arr); - n = temp.length-1; - m = temp[0].length-1; - // 1 -> 4 - for (int j = 1; j <= n / 2; j++) { - for (int i = 1; i <= m / 2; i++) { - arr[j + n / 2][i] = temp[j][i]; - } - } - // 4 -> 3 - for (int j = n / 2; j <= n; j++) { - for (int i = 1; i <= m / 2; i++) { - arr[j][m / 2 + i] = temp[j][i]; - } - } - // 3 -> 2 - for (int j = n / 2 + 1; j <= n; j++) { - for (int i = m / 2 + 1; i <= m; i++) { - arr[j - n / 2][i] = temp[j][i]; - } - } - // 2 -> 1 - for (int j = 1; j <= n / 2; j++) { - for (int i = m / 2 + 1; i <= m; i++) { - arr[j][i - m / 2] = temp[j][i]; - } - } - } - - static int[][] copy(int[][] arr) { - int[][] temp = new int[arr.length][arr[0].length]; - for (int i = 1; i <= arr.length-1; i++) { - for (int j = 1; j <= arr[0].length-1; j++) { - temp[i][j] = arr[i][j]; - } - } - return temp; - } - - static void print(int arr[][]) throws IOException { - for (int i = 1; i < arr.length; i++) { - for (int j = 1; j < arr[i].length; j++) { - bw.append(arr[i][j] + " "); - } - bw.newLine(); - } - } - - static int stoi(String s) { - return Integer.parseInt(s); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - n = stoi(st.nextToken()); - m = stoi(st.nextToken()); - r = stoi(st.nextToken()); - - arr = new int[n + 1][m + 1]; - for (int i = 1; i <= n; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 1; j <= m; j++) { - arr[i][j] = stoi(st.nextToken()); - } - } - - List = new ArrayList(); - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < r; i++) { - List.add(stoi(st.nextToken())); - } - - for (int i : List) { - switch (i) { - case 1: one(); break; - case 2: two(); break; - case 3: three(); break; - case 4: four(); break; - case 5: five(); break; - case 6: six(); break; - default: break; - } - } - - print(arr); - bw.flush(); - bw.close(); - } - -} diff --git a/JAVA_2021/src/BOJ/BOJ_16956.java b/JAVA_2021/src/BOJ/BOJ_16956.java deleted file mode 100644 index 94db19f..0000000 --- a/JAVA_2021/src/BOJ/BOJ_16956.java +++ /dev/null @@ -1,62 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_16956 { - private static int R, C; - private static char[][] graph; - - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - R = Integer.parseInt(st.nextToken()); - C = Integer.parseInt(st.nextToken()); - - graph = new char[R][C]; - boolean flag = true; - - for (int i = 0; i < R; i++) { - String str = br.readLine(); - for (int j = 0; j < C; j++) { - graph[i][j] = str.charAt(j); - } - } - - for (int i = 0; i < R; i++) { - for (int j = 0; j < C; j++) { - if (graph[i][j] == 'W') { - for (int dir = 0; dir < 4; dir++) { - int nx = i + dx[dir]; - int ny = j + dy[dir]; - - if (0 <= nx && nx < R && 0 <= ny && ny < C) { - if (graph[nx][ny] == '.') { - graph[nx][ny] = 'D'; - } else if (graph[nx][ny] == 'S') { - flag = false; - } - } - } - } - } - } - - if (!flag) { - System.out.println(0); - } else { - System.out.println(1); - for (int i =0 ; i < R; i++) { - for (int j =0; j < C; j++) { - System.out.print(graph[i][j]); - } - System.out.println(); - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1712.java b/JAVA_2021/src/BOJ/BOJ_1712.java deleted file mode 100644 index d0d85c9..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1712.java +++ /dev/null @@ -1,29 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_1712 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - - long a = Long.parseLong(st.nextToken()); - long b = Long.parseLong(st.nextToken()); - long c = Long.parseLong(st.nextToken()); - - if (c <= b) { - System.out.println("-1"); - } else { - for (int n = 0; ; n++) { - long made_price = a + (b * n); - long selling_price = c * n; - - if (made_price < selling_price) { - System.out.println(n); - break; - } - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_17135.java b/JAVA_2021/src/BOJ/BOJ_17135.java deleted file mode 100644 index e520471..0000000 --- a/JAVA_2021/src/BOJ/BOJ_17135.java +++ /dev/null @@ -1,128 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.Queue; -import java.util.StringTokenizer; - -public class BOJ_17135 { - private static int[] dx = {0, -1, 0}; - private static int[] dy = {-1, 0, 1}; - private static int n, m, d, ans = 0; - private static int[][] graph; - private static boolean[] chk; - - private static void Combination(int depth, int start) { - if (depth == 3) { - int[][] tmpGraph = new int[n + 1][m]; - for (int i = 0; i < n; i++) { - for (int j = 0; j < m; j++) { - tmpGraph[i][j] = graph[i][j]; - } - } - bfs(tmpGraph); - return; - } - - for (int i = start; i < m; i++) { - if (!chk[i]) { - chk[i] = true; - Combination(depth + 1, i); - chk[i] = false; - } - } - } - - private static void bfs(int[][] arr) { - int cnt = 0; - for (int i = n; i> 0; i--) { - int archerIdx = 0; - Queue queue = new LinkedList(); - for (int j = 0; j < m; j++) { - if (chk[j]) { - arr[i][j] = 2; - queue.add(new Pair(i - 1, j, 1, archerIdx++)); - } else { - arr[i][j] = 0; - } - } - - boolean[] enemyFind = new boolean[3]; - boolean[][][] visited = new boolean[n][m][3]; - boolean[][] alreadyFind = new boolean[n][m]; - ArrayList list = new ArrayList(); - - while (!queue.isEmpty()) { - Pair p = queue.poll(); - int x = p.x; - int y = p.y; - int idx = p.idx; - int depth = p.depth; - if (enemyFind[idx]) continue; - - if (arr[x][y] == 1){ - enemyFind[idx] = true; - if (!alreadyFind[x][y]) { - alreadyFind[x][y] = true; - list.add(p); - cnt++; - } - continue; - } - if (!enemyFind[idx]) { - visited[x][y][idx] = true; - for (int j = 0; j < 3; j++) { - int nx = x + dx[j]; - int ny = y + dy[j]; - - if (0 <= nx && nx < n && 0 <= ny && ny < m) { - if (!visited[nx][ny][idx] && depth < d) { - queue.add(new Pair(nx, ny, depth + 1, idx)); - } - } - } - } - } - - for (int j = 0; j < list.size(); j++) { - Pair p = list.get(j); - arr[p.x][p.y] = 0; - } - } - ans = Math.max(ans, cnt); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - n = Integer.parseInt(st.nextToken()); - m = Integer.parseInt(st.nextToken()); - d = Integer.parseInt(st.nextToken()); - graph = new int[n + 1][m]; - chk = new boolean[m]; - - for (int i = 0; i < n; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0; j < m; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - Combination(0, 0); - System.out.println(ans); - - } - - static class Pair { - int x, y, depth, idx; - - public Pair(int x, int y, int depth, int idx) { - this.x = x; - this.y = y; - this.depth = depth; - this.idx = idx; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1717.java b/JAVA_2021/src/BOJ/BOJ_1717.java deleted file mode 100644 index 9109f9e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1717.java +++ /dev/null @@ -1,55 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_1717 { - private static int[] parent; - - private static int Find(int x) { - if (x == parent[x]) return x; - return parent[x] = Find(parent[x]); - } - - private static void Union(int a, int b) { - a = Find(a); - b = Find(b); - if (a == b) return; - if (a < b) parent[b] = a; - else parent[a] = b; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - String[] line = br.readLine().split(" "); - int n = Integer.parseInt(line[0]); - int m = Integer.parseInt(line[1]); - - parent = new int[n + 1]; - for (int i = 0 ; i < n + 1; i++) { - parent[i] = i; - } - - for (int i = 0 ; i < m; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - - if (a == 0) { - Union(b, c); - } else { - if (Find(b) == Find(c)) { - bw.write("YES" + "\n"); - } else { - bw.write("NO" + "\n"); - } - } - } - bw.flush(); - bw.close(); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_17249.java b/JAVA_2021/src/BOJ/BOJ_17249.java deleted file mode 100644 index 89cc859..0000000 --- a/JAVA_2021/src/BOJ/BOJ_17249.java +++ /dev/null @@ -1,37 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_17249 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String s = br.readLine(); - int [] arr = new int[2]; - int tmp_left = 0; - int tmp_right = 0; - - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == '(') { - tmp_left = i; - } - if (s.charAt(i) == ')') { - tmp_right = i; - } - } - - for (int i = 0 ; i < tmp_left; i++) { - if (s.charAt(i) == '@') { - arr[0]++; - } - } - - for (int i = s.length() - 1; i> tmp_right; i--) { - if (s.charAt(i) == '@') { - arr[1]++; - } - } - System.out.println(arr[0] + " " + arr[1]); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_17298.java b/JAVA_2021/src/BOJ/BOJ_17298.java deleted file mode 100644 index 044f729..0000000 --- a/JAVA_2021/src/BOJ/BOJ_17298.java +++ /dev/null @@ -1,44 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Stack; -import java.util.StringTokenizer; - -public class BOJ_17298 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - int N = Integer.parseInt(br.readLine()); - - StringTokenizer st = new StringTokenizer(br.readLine()); - Stack stack = new Stack(); - - int[] arr = new int[N]; - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - int[] ans = new int[N]; - for (int i = 0 ; i < N; i++) { - ans[i] = -1; - } - - stack.push(0); - for (int i = 1; i < N; i++) { - if (stack.isEmpty()) stack.push(i); - while (!stack.isEmpty() && arr[stack.peek()] < arr[i]) { - ans[stack.peek()] = arr[i]; - stack.pop(); - } - stack.push(i); - } - - for(int i=0; i stack = new Stack(); - stack.push(0); - for (int i = 1; i < N; i++) { - if (stack.isEmpty()) stack.push(i); - while (!stack.isEmpty() && arr[stack.peek()] stack = new Stack(); - - for (int i = 0 ; i < num; i++) { - input[i] = Integer.parseInt(a[i]); - numCnt[input[i]]++; - } - - // 로직부 - for (int i = 0; i < num; i++) { - if (stack.isEmpty()) stack.push(i); - while (!stack.isEmpty() && numCnt[input[stack.peek()]] < numCnt[input[i]]) { - ans[stack.pop()] = input[i]; - } - stack.push(i); - } - - // 출력 - for (int i = 0 ; i < num; i++) { - bw.write(ans[i] + " "); - } - bw.flush(); - bw.close(); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_17350.java b/JAVA_2021/src/BOJ/BOJ_17350.java deleted file mode 100644 index d7178b3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_17350.java +++ /dev/null @@ -1,28 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_17350 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - String [] arr = new String[N]; - for (int i = 0; i < N; i++) { - arr[i] = br.readLine(); - } - int ans = 0; - for (int i = 0 ; i < N; i++) { - if (arr[i].equals("anj")) { - ans++; - } - } - if (ans> 0) { - System.out.println("뭐야;"); - } else { - System.out.println("뭐야?"); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_17406.java b/JAVA_2021/src/BOJ/BOJ_17406.java deleted file mode 100644 index f66d9fc..0000000 --- a/JAVA_2021/src/BOJ/BOJ_17406.java +++ /dev/null @@ -1,74 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_17406 { - private static int N, M, K; - private static int[] dx = {0, 1, 0, -1}; - private static int[] dy = {1, 0, -1, 0}; - private static int[][] graph; - - private static void rotate(int start_x, int start_y, int end_x, int end_y, int depth) { - for (int i = 0; i < depth; i++) { - int x = start_x + i; - int y = start_y + i; - int dir = 0; - int tmp = graph[x][y]; - - while (dir < 4) { - int nx = x + dx[dir]; - int ny = y + dy[dir]; - - if (x <= nx && nx < end_x && y <= ny && ny < end_y) { - graph[x][y] = graph[nx][ny]; - x = nx; - y = ny; - } else { - dir++; - } - } - - graph[i + 1][i] = tmp; - } - } - - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - K = Integer.parseInt(st.nextToken()); - - graph = new int[N][M]; - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0; j < M; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < K; i++) { - int r = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - int s = Integer.parseInt(st.nextToken()); - - rotate(r - s, c - s, r + s, c + s, s); - } - - for (int i = 0; i stack = new Stack(); - - boolean tag = false; - - for (int i = 0; i < str.length(); i++) { - if (str.charAt(i) == '<') { - tag = true; - while(!stack.isEmpty()) bw.write(stack.pop()); - bw.write(str.charAt(i)); - } else if (str.charAt(i) == '>') { - tag = false; - bw.write(str.charAt(i)); - } else if (tag) { - bw.write(str.charAt(i)); - } else { - if (str.charAt(i) == ' ') { - while(!stack.isEmpty()) bw.write(stack.pop()); - bw.write(str.charAt(i)); - } else { - stack.push(str.charAt(i)); - } - } - } - - while(!stack.isEmpty()) bw.write(stack.pop()); - - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_17478.java b/JAVA_2021/src/BOJ/BOJ_17478.java deleted file mode 100644 index 36bbfb7..0000000 --- a/JAVA_2021/src/BOJ/BOJ_17478.java +++ /dev/null @@ -1,51 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_17478 { - static String[] StringArr; - static String underLine = ""; - - private static void recursive(int n) { - String ul = underLine; - - if (n == 0) { - System.out.println(ul + StringArr[0]); - System.out.println(ul + StringArr[4]); - System.out.println(ul + StringArr[5]); - return; - } - - for (int i = 0; i < 4; i++) { - System.out.println(ul + StringArr[i]); - } - - underLine += "____"; - recursive(n - 1); - System.out.println(ul + StringArr[5]); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - StringArr = new String[6]; - for (int i = 0; i < StringArr.length; i++) { - StringArr[i] = " "; - } - - System.out.println("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다."); - StringArr[0] = "\"재귀함수가 뭔가요?\""; - StringArr[1] = "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어."; - StringArr[2] = "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지."; - StringArr[3] = "그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\""; - StringArr[4] = "\"재귀함수는 자기 자신을 호출하는 함수라네\""; - StringArr[5] = "라고 답변하였지."; - - recursive(T); - - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1753.java b/JAVA_2021/src/BOJ/BOJ_1753.java deleted file mode 100644 index 053998e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1753.java +++ /dev/null @@ -1,89 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.PriorityQueue; -import java.util.StringTokenizer; - -public class BOJ_1753 { - private static final int INF = (int) 1e9; - private static int v, e, k; - private static ArrayList list[]; - private static int[] d; - private static boolean[] visited; - - private static void dijkstra(){ - PriorityQueue pq = new PriorityQueue(); - pq.add(new Node(k, 0)); - - while(!pq.isEmpty()) { - Node a = pq.poll(); - int a_idx = a.idx; - if (visited[a_idx]) continue; - visited[a_idx] = true; - for (Node o: list[a_idx]) { - if (d[o.idx]> d[a_idx] + o.distance) { - d[o.idx] = d[a_idx] + o.distance; - pq.add(new Node(o.idx, d[o.idx])); - } - } - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] line = br.readLine().split(" "); - v = Integer.parseInt(line[0]); - e = Integer.parseInt(line[1]); - k = Integer.parseInt(br.readLine()); - - d = new int[v + 1]; - list = new ArrayList[v + 1]; - visited = new boolean[v + 1]; - - for (int i = 0 ; i <= v; i++) { - list[i] = new ArrayList(); - } - Arrays.fill(d, INF); - d[k] = 0; - - for (int i = 0 ; i < e; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - list[a].add(new Node(b, c)); - } - - dijkstra(); - - StringBuilder sb = new StringBuilder(); - for (int i = 1; i <= v; i++) { - if (d[i] == INF) { - sb.append("INF").append("\n"); - } else { - sb.append(d[i]).append("\n"); - } - } - System.out.print(sb); - br.close(); - } - - private static class Node implements Comparable{ - int idx, distance; - - public Node(int idx, int distance) { - this.idx = idx; - this.distance = distance; - } - - @Override - public int compareTo(Node o) { - return this.distance - o.distance; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1755.java b/JAVA_2021/src/BOJ/BOJ_1755.java deleted file mode 100644 index 468c0f3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1755.java +++ /dev/null @@ -1,61 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; - -public class BOJ_1755 { - private static ArrayList arr; - private static String[] alphabet = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] line = br.readLine().split(" "); - int M = Integer.parseInt(line[0]); - int N = Integer.parseInt(line[1]); - arr = new ArrayList(); - for (int i = M; i <= N; i++) { - if (i < 10) { - arr.add(new Node(i, alphabet[i])); - } else { - int ten = i / 10; - int one = i % 10; - arr.add(new Node(i, alphabet[ten] + " " + alphabet[one])); - } - } - - Collections.sort(arr); - StringBuilder sb = new StringBuilder(); - for (int i = 0 ; i < arr.size(); i++) { - if (i != 0 && i % 10 == 0) { - sb.append("\n"); - } - sb.append(arr.get(i).num).append(" "); - } - System.out.print(sb); - br.close(); - } - - - private static class Node implements Comparable{ - int num; - String eng; - - public Node(int num, String eng) { - this.num = num; - this.eng = eng; - } - - @Override - public String toString() { - return "[" + num + ", " + eng + "]"; - } - - @Override - public int compareTo(Node o) { - return this.eng.compareTo(o.eng); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1759.java b/JAVA_2021/src/BOJ/BOJ_1759.java deleted file mode 100644 index 99fcd8b..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1759.java +++ /dev/null @@ -1,67 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_1759 { - private static int L; - private static int C; - private static char[] srcArr; - private static char[] resArr; - - private static final char[] mo = { 'a', 'e', 'i', 'o', 'u'}; - private static final char[] ja = { - 'b', 'c', 'd', 'f', 'g', - 'h', 'j', 'k', 'l', 'm', - 'n', 'p', 'q', 'r', 's', - 't', 'v', 'w', 'x', 'y', - 'z'}; - private static StringBuilder sb = new StringBuilder(); - private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - private static StringTokenizer st; - - private static boolean contains(char[] obj1, char[] obj2, int cnt){ - int res = 0; - for(int i = 0; i < obj1.length; i++){ - for(int j = 0 ; j < obj2.length; j++){ - if(obj1[i] == obj2[j]){ - if(++res == cnt ) return true; - } - } - } - return false; - } - - private static void f(int idx, int idxStart){ - if(idx == L){ - if(contains(mo, resArr, 1) && contains(ja, resArr, 2)) - sb.append(resArr).append("\n"); - return ; - } - - for(int i = idxStart ; i < C ; i++){ - resArr[idx] = srcArr[i]; - f(idx + 1, i + 1); - } - } - - public static void main(String[] args) throws IOException { - st = new StringTokenizer(br.readLine()); - L = Integer.parseInt(st.nextToken()); - C = Integer.parseInt(st.nextToken()); - - srcArr = new char[C]; - resArr = new char[L]; - - st = new StringTokenizer(br.readLine()); - for(int i = 0 ; i < C ; i++ ){ - srcArr[i] = st.nextToken().charAt(0); - } - Arrays.sort(srcArr); - f(0, 0); - System.out.println(sb); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_18409.java b/JAVA_2021/src/BOJ/BOJ_18409.java deleted file mode 100644 index d1a7f9e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_18409.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.Buffer; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_18409 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - char[] arr = new char[N]; - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = st.nextToken().charAt(i); - } - System.out.println(Arrays.toString(arr)); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1863.java b/JAVA_2021/src/BOJ/BOJ_1863.java deleted file mode 100644 index e722001..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1863.java +++ /dev/null @@ -1,34 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; -import java.util.StringTokenizer; - -public class BOJ_1863 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int N = Integer.parseInt(br.readLine()); - int ans = 0; - Stack s = new Stack(); - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - st.nextToken(); - int h = Integer.parseInt(st.nextToken()); - while (!s.isEmpty() && s.peek()> h) { - ans++; - s.pop(); - } - if (!s.isEmpty() && s.peek() == h) continue; - s.push(h); - } - while (!s.isEmpty() && s.peek()> 0) { - ans++; - s.pop(); - } - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_18883.java b/JAVA_2021/src/BOJ/BOJ_18883.java deleted file mode 100644 index 55e2751..0000000 --- a/JAVA_2021/src/BOJ/BOJ_18883.java +++ /dev/null @@ -1,28 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_18883 { - 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()); - StringBuilder sb = new StringBuilder(); - int cnt = 1; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < M; j++) { - if (j != 0) { - sb.append(' '); - } - sb.append(cnt++); - } - sb.append('\n'); - } - System.out.println(sb); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1912.java b/JAVA_2021/src/BOJ/BOJ_1912.java deleted file mode 100644 index 5755b4f..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1912.java +++ /dev/null @@ -1,45 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.ArrayList; -import java.util.StringTokenizer; - -public class BOJ_1912 { - private static int max (int a, int b) { - if (a> b) { - return a; - } else { - return b; - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - int N = Integer.parseInt(br.readLine()); - StringTokenizer st = new StringTokenizer(br.readLine()); - int[] arr = new int[N]; - - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - ArrayList dp = new ArrayList(); - dp.add(arr[0]); - - for (int i = 0; i < N - 1; i++) { - dp.add(max((dp.get(i) + arr[i + 1]), arr[i + 1])); - } - - int ans = -123456789; - for (int i = 0 ; i < N; i++) { - ans = max(ans, dp.get(i)); - } - - bw.write(ans +"\n"); - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1914.java b/JAVA_2021/src/BOJ/BOJ_1914.java deleted file mode 100644 index 0d7872a..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1914.java +++ /dev/null @@ -1,34 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.math.BigInteger; - -public class BOJ_1914 { - private static void hanoi_tower (int cnt, int from, int aux, int to){ - if (cnt == 1) { - System.out.println(from + " " + to); - return; - } - hanoi_tower(cnt - 1, from, to, aux); - System.out.println(from + " " + to); - hanoi_tower(cnt - 1, aux, from, to); - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - BigInteger ans = new BigInteger("1"); - if (N == 1) System.out.println(1); - else { - for (int i = 0 ; i < N; i++) { - ans = ans.multiply(new BigInteger("2")); - } - ans = ans.subtract(new BigInteger("1")); - System.out.println(ans); - } - if (N <= 20) { - hanoi_tower(N, 1, 2, 3); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1918.java b/JAVA_2021/src/BOJ/BOJ_1918.java deleted file mode 100644 index 26ff3d1..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1918.java +++ /dev/null @@ -1,65 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Stack; - -public class BOJ_1918 { - public static int Check_Op(char c) { - switch (c) { - case '*': - case '/': - return 2; - case '+': - case '-': - return 1; - case '(': - case ')': - return 0; - } - return -1; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - Stack op = new Stack(); - StringBuilder sb = new StringBuilder(); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - char[] s = br.readLine().toCharArray(); - - for (int i = 0; i < s.length; i++) { - int op_check = Check_Op(s[i]); - char c = s[i]; - - switch (c) { - case '+': - case '-': - case '*': - case '/': - while (!op.isEmpty() && Check_Op(op.peek())>= op_check) { - sb.append(op.pop()); - } - op.push(c); - break; - case '(': - op.push(c); - break; - case ')': - while (!op.isEmpty() && op.peek() != '(') { - sb.append(op.pop()); - } - op.pop(); - break; - default: - sb.append(c); - } - } - while(!op.isEmpty()) { - sb.append(op.pop()); - } - bw.write(sb.toString() + "\n"); - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1931.java b/JAVA_2021/src/BOJ/BOJ_1931.java deleted file mode 100644 index aa9efe8..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1931.java +++ /dev/null @@ -1,54 +0,0 @@ -package BOJ; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Scanner; - -public class BOJ_1931 { - private static int cnt; - static class MeetingRoom implements Comparable { - int no, start, end; - - public MeetingRoom(int no, int start, int end) { - super(); - this.no = no; - this.start = start; - this.end = end; - } - - @Override - public int compareTo(MeetingRoom o) { - int diff = this.end - o.end; - return diff != 0 ? diff : this.start - o.start; - } - } - - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - - int N = sc.nextInt(); - MeetingRoom[] room = new MeetingRoom[N]; - - for (int i = 0; i < N; i++) { - room[i] = new MeetingRoom(i + 1, sc.nextInt(), sc.nextInt()); - } - List list = getSchedule(room); - System.out.println(cnt); - } - - public static List getSchedule(MeetingRoom[] room) { - cnt = 1; - ArrayList list = new ArrayList(); - Arrays.sort(room); - list.add(room[0]); - - for (int i = 1, size = room.length; i < size; i++) { - if (list.get(list.size() - 1).end <= room[i].start) { - list.add(room[i]); - cnt++; - } - } - return list; - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1931_2.java b/JAVA_2021/src/BOJ/BOJ_1931_2.java deleted file mode 100644 index 6d4196a..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1931_2.java +++ /dev/null @@ -1,45 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.Comparator; -import java.util.StringTokenizer; - -public class BOJ_1931_2 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[][] time = new int[N][2]; - - for (int i = 0 ;i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - time[i][0] = Integer.parseInt(st.nextToken()); // start - time[i][1] = Integer.parseInt(st.nextToken()); // finish - } - - int tmp = -123456789; - int cnt = 0; - - Arrays.sort(time, new Comparator() { - @Override - public int compare(int[] o1, int[] o2) { - if (o1[1] == o2[1]) { - return o1[0] - o2[0]; - } - return o1[1] - o2[1]; - } - }); - - for (int i = 0 ;i < N; i++) { - if (time[i][0]>= tmp) { - tmp = time[i][1]; - cnt++; - } - } - - System.out.println(cnt); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1946.java b/JAVA_2021/src/BOJ/BOJ_1946.java deleted file mode 100644 index 804d97e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1946.java +++ /dev/null @@ -1,48 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.*; - -public class BOJ_1946 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - int N = Integer.parseInt(br.readLine()); - ArrayList arr = new ArrayList(); - for (int i = 0; i< N; i++) { - StringTokenizer st= new StringTokenizer(br.readLine()); - int s1 = Integer.parseInt(st.nextToken()); - int s2 = Integer.parseInt(st.nextToken()); - arr.add(new Node(s1, s2)); - } - - Collections.sort(arr, (s1, s2) -> s1.s1 - s2.s1); - - int tmp = arr.get(0).s2; - int ans = 0; - - for (int i = 0; i < arr.size(); i++) { - if (arr.get(i).s2> tmp) { - ans++; - } else { - tmp = arr.get(i).s2; - } - - } - System.out.println(N - ans); - } - br.close(); - } - - static class Node{ - int s1, s2; - public Node(int s1, int s2) { - this.s1 = s1; - this.s2 = s2; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_19622.java b/JAVA_2021/src/BOJ/BOJ_19622.java deleted file mode 100644 index fa53abd..0000000 --- a/JAVA_2021/src/BOJ/BOJ_19622.java +++ /dev/null @@ -1,55 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_19622 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - Pair[] arr = new Pair[N]; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int start = Integer.parseInt(st.nextToken()); - int end = Integer.parseInt(st.nextToken()); - int capacity = Integer.parseInt(st.nextToken()); - arr[i] = new Pair(start, end, capacity); - } - - - int[] dp = new int[N]; - int ans = -123456789; - dp[0] = arr[0].capacity; - - if (N>= 1) { - ans = dp[0]; - } - - if (N>= 2) { - dp[1] = arr[1].capacity; - } - - for (int i = 2; i < N; i++) { - dp[i] = arr[i].capacity + ans; - ans = Math.max(ans, dp[i - 1]); - } - ans = Math.max(ans, dp[N - 1]); - System.out.println(ans); - br.close(); - } -} - -class Pair { - int start; - int end; - int capacity; - - public Pair(int start, int end, int capacity) { - this.start = start; - this.end = end; - this.capacity = capacity; - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_1969.java b/JAVA_2021/src/BOJ/BOJ_1969.java deleted file mode 100644 index eda5eef..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1969.java +++ /dev/null @@ -1,51 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_1969 { - 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()); - - String[] arr = new String[n]; - int[][] alphabet = new int[m][26]; - - for (int i = 0; i< n; i++) { - arr[i] = br.readLine(); - for (int j = 0 ; j < m; j++) { - alphabet[j][arr[i].charAt(j) - 'A']++; - } - } - - StringBuilder sb = new StringBuilder(); - for (int i = 0 ; i < m; i++) { - int max = -123456789; - int idx = 0; - - for (int j = 0; j < 26; j++) { - if (alphabet[i][j]> max){ - max = alphabet[i][j]; - idx = j; - } - } - sb.append((char) (idx + 'A')); - } - System.out.println(sb.toString()); - - int ans = 0; - for (int i = 0; i< n; i++) { - for (int j = 0 ; j < m; j++) { - if (sb.charAt(j) != arr[i].charAt(j)) ans++; - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1987.java b/JAVA_2021/src/BOJ/BOJ_1987.java deleted file mode 100644 index ddce5a8..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1987.java +++ /dev/null @@ -1,54 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1987 { - private static int R, C, ans = -123456789; - private static boolean[] visited; - private static char[][] graph; - - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - private static void dfs(int x, int y, int m) { - visited[graph[x][y] - 'A'] = true; - - for (int i = 0; i < 4; i++) { - int nx = x + dx[i], ny = y + dy[i]; - - if (0 <= nx && nx < R && 0 <= ny && ny < C){ - if (!visited[graph[nx][ny] - 'A']) { - dfs(nx, ny, m + 1); - - } - } - } - visited[graph[x][y] - 'A'] = false; - ans = Math.max(ans, m); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - R = Integer.parseInt(st.nextToken()); - C = Integer.parseInt(st.nextToken()); - - graph = new char[R][C]; - visited = new boolean[26]; - - for (int i = 0 ; i < R; i++) { - String tmp = br.readLine(); - for (int j = 0; j < C; j++) { - graph[i][j] = tmp.charAt(j); - } - } - dfs(0, 0, 1); - System.out.println(ans); - - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_1992.java b/JAVA_2021/src/BOJ/BOJ_1992.java deleted file mode 100644 index 91f8e23..0000000 --- a/JAVA_2021/src/BOJ/BOJ_1992.java +++ /dev/null @@ -1,48 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_1992 { - private static StringBuilder sb = new StringBuilder(); - private static char[][] graph; - private static int N; - - private static void Recursive (int size, int x, int y) { - int val = graph[y][x]; - boolean flag = false; - for (int i = y; i < y + size; i++){ - for (int j = x; j < x + size; j++) { - if (val != graph[i][j]) flag = true; - } - } - - if (!flag) { - sb.append(graph[y][x]); - return; - } - - sb.append('('); - Recursive(size / 2, x, y); - Recursive(size / 2, x + size / 2, y); - Recursive(size / 2, x, y + size / 2); - Recursive(size / 2, x + size / 2, y + size / 2); - sb.append(')'); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - graph = new char[N][N]; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - graph[i] = st.nextToken().toCharArray(); - } - Recursive(N, 0, 0); - System.out.println(sb); - br.close(); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_20055.java b/JAVA_2021/src/BOJ/BOJ_20055.java deleted file mode 100644 index c365df4..0000000 --- a/JAVA_2021/src/BOJ/BOJ_20055.java +++ /dev/null @@ -1,62 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_20055 { - private static int N, K, broken; - private static int[] arr; - private static boolean[] robot; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - K = Integer.parseInt(st.nextToken()); - - arr = new int[N * 2]; - robot = new boolean[N * 2]; // 벨트에 로봇이 있는지 없는지 - - st = new StringTokenizer(br.readLine()); - broken = 0; // 벨트 고장 갯수 - - for (int i = 0 ; i< N * 2; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - if (arr[i] == 0) broken++; - } - - int ans = 0; - while (broken < K) { - ans++; - - int tmp = arr[2 * N - 1]; // 컨베이어 벨트가 움직임 - for (int i = 2 * N - 1; i>= 1; i--) { - robot[i] = robot[i - 1]; - arr[i] = arr[i- 1]; - } - arr[0] = tmp; - robot[0] = false; - if (robot[N - 1]) robot[N - 1] = false; // 컨베이어 벨트로 로봇이 N에 이동했을때 - - for (int i = N - 2; i>= 0; i--) { - if (robot[i] && arr[i + 1]> 0 && !robot[i + 1]) { // 현재위치에 로봇이 있고, 다음칸이 0이 아니고, 로봇이 없다면 - robot[i] = false; - robot[i + 1] = true; // 로봇 이동 - arr[i + 1] -= 1; // 내구도 -1 해주기 - if (arr[i + 1] == 0) broken++; // 현재 이동하고 나서의 자리 내구도 확인 - } - } - if (robot[N - 1]) robot[N - 1] = false; // 로봇 이동후 n에 도착했을 때 내려오므로 false - - if (arr[0]> 0 && !robot[0]) { // 로봇을 올림 - robot[0] = true; - arr[0] -= 1; - if (arr[0] == 0) broken++; - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_20299.java b/JAVA_2021/src/BOJ/BOJ_20299.java deleted file mode 100644 index 60d1d44..0000000 --- a/JAVA_2021/src/BOJ/BOJ_20299.java +++ /dev/null @@ -1,42 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_20299 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - StringTokenizer st = new StringTokenizer(br.readLine()); - int N = Integer.parseInt(st.nextToken()); - int S = Integer.parseInt(st.nextToken()); - int M = Integer.parseInt(st.nextToken()); - - StringBuilder sb = new StringBuilder(); - - int totalCnt = 0; - - for (int i = 0 ; i < N; i++) { - st = new StringTokenizer(br.readLine()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - - if (a>= M && b>= M && c>= M) { - if (a + b + c>= S) { - totalCnt++; - sb.append(a).append(" ").append(b).append(" ").append(c).append(" "); - - } - } - } - - bw.write(totalCnt + "\n"); - bw.write(sb.toString()); - - br.close(); // 스캐너 닫음 - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_20361.java b/JAVA_2021/src/BOJ/BOJ_20361.java deleted file mode 100644 index bc621a2..0000000 --- a/JAVA_2021/src/BOJ/BOJ_20361.java +++ /dev/null @@ -1,40 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.Scanner; -import java.util.StringTokenizer; - -public class BOJ_20361 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - StringTokenizer st = new StringTokenizer(br.readLine()); - int N = Integer.parseInt(st.nextToken()); - int X = Integer.parseInt(st.nextToken()) - 1; - int K = Integer.parseInt(st.nextToken()); - - boolean[] arr = new boolean[N]; - for (int i = 0; i < N; i++) { - arr[X] = true; - } - - boolean tmp; - for (int i = 0; i < K; i++) { - st = new StringTokenizer(br.readLine()); - int A = Integer.parseInt(st.nextToken()) - 1; - int B = Integer.parseInt(st.nextToken()) - 1; - - tmp = arr[A]; - arr[A] = arr[B]; - arr[B] = tmp; - } - - for (int i = 0; i < N; i++) { - if (arr[i]) bw.write((i + 1) + "\n"); - } - br.close(); - bw.flush(); - bw.close(); - } -} - diff --git a/JAVA_2021/src/BOJ/BOJ_20923.java b/JAVA_2021/src/BOJ/BOJ_20923.java deleted file mode 100644 index 9317971..0000000 --- a/JAVA_2021/src/BOJ/BOJ_20923.java +++ /dev/null @@ -1,82 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayDeque; -import java.util.Arrays; -import java.util.Deque; -import java.util.StringTokenizer; - - -public class BOJ_20923 { - 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()); - - Deque do_deck = new ArrayDeque(); - Deque su_deck = new ArrayDeque(); - - for (int tc = 0; tc < n; tc++) { - st = new StringTokenizer(br.readLine()); - do_deck.add(Integer.parseInt(st.nextToken())); - su_deck.add(Integer.parseInt(st.nextToken())); - } - - - Deque do_ground = new ArrayDeque(); - Deque su_ground = new ArrayDeque(); - - int l = 0; - int r = 0; - - boolean turn = false; - - while (m--> 0) { - if (!turn) { - l = do_deck.pollLast(); - do_ground.add(l); - } else { - r = su_deck.pollLast(); - su_ground.add(r); - } - turn = !turn; - - if (do_deck.isEmpty() || su_deck.isEmpty()) break; - - if (l == 5 || r == 5) { // do가 종칠때 - while (!su_ground.isEmpty()) { - do_deck.addFirst(su_ground.pollFirst()); - } - while (!do_ground.isEmpty()) { - do_deck.addFirst(do_ground.pollFirst()); - } - l = 0; - r = 0; - } - - if ((!do_ground.isEmpty() && l + r == 5) || (!su_ground.isEmpty() && l + r == 5)) { // su가 종칠때 - while (!do_ground.isEmpty()){ - su_deck.addFirst(do_ground.pollFirst()); - } - while (!su_ground.isEmpty()) { - su_deck.addFirst(su_ground.pollFirst()); - } - l = 0; - r = 0; - } - } - - if (do_deck.size()> su_deck.size()) { - System.out.println("do"); - } else if (do_deck.size() < su_deck.size()) { - System.out.println("su"); - } else { - System.out.println("dosu"); - } - - br.close(); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2108.java b/JAVA_2021/src/BOJ/BOJ_2108.java deleted file mode 100644 index 6a20a79..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2108.java +++ /dev/null @@ -1,48 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.*; - -public class BOJ_2108 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - List list = new ArrayList(); - - int [] arr = new int[n]; - int [] check = new int[8001]; - int max = 0; - int sum = 0; - - for (int i = 0; i < n; i++) { - arr[i] = Integer.parseInt(br.readLine()); - sum += arr[i]; - check[arr[i] + 4000]++; - } - - System.out.println((int) Math.round((double) sum / n)); //산술평균 - - Arrays.sort(arr); - System.out.println(arr[n / 2]); //중앙값 - - for (int i = 0; i < 8001; i++) { - if (check[i]>= max) { - max = check[i]; - } - } - for (int i = 0; i < 8001; i++) { - if (check[i] == max) { - list.add(i - 4000); - } - } - if (list.size() == 1) { - System.out.println(list.get(0)); - } - else { - Collections.sort(list); - System.out.println(list.get(1)); - } - System.out.println(Math.abs(arr[arr.length - 1] - arr[0])); //범위 - - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2163.java b/JAVA_2021/src/BOJ/BOJ_2163.java deleted file mode 100644 index 3307426..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2163.java +++ /dev/null @@ -1,15 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.StringTokenizer; - -public class BOJ_2163 { - 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()); - System.out.println(N * M - 1); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2164.java b/JAVA_2021/src/BOJ/BOJ_2164.java deleted file mode 100644 index 68bc8bb..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2164.java +++ /dev/null @@ -1,28 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.LinkedList; -import java.util.Queue; - -public class BOJ_2164 { - private static Queue queue = new LinkedList(); - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - for (int i = 1; i <= N; i++) { - queue.add(i); - } - - for (int i = 0; i < N; i++) { - if (queue.size() == 1) { - System.out.println(queue.poll()); - break; - } - queue.poll(); - queue.add(queue.poll()); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2164_2.java b/JAVA_2021/src/BOJ/BOJ_2164_2.java deleted file mode 100644 index a04a854..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2164_2.java +++ /dev/null @@ -1,27 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.*; - -public class BOJ_2164_2 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - LinkedList queue = new LinkedList(); - - for (int i = 0; i < N; ++i) { - queue.add(i + 1); - } - - while (true) { - if (queue.size() == 1) { - System.out.println(queue.poll()); - break; - } - queue.poll(); - queue.add(queue.poll()); - } - - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2210.java b/JAVA_2021/src/BOJ/BOJ_2210.java deleted file mode 100644 index 98f9811..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2210.java +++ /dev/null @@ -1,66 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2210 { - private static int[][] graph; - private static int[] arr; - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - private static int ans; - - private static void dfs(int x, int y, String str) { - if (str.length() == 6 && arr[Integer.parseInt(str)] == 0) { - arr[Integer.parseInt(str)] = 1; - ans++; - return; - } else { - for (int i = 0; i < 4; i++) { - int nx = x + dx[i]; - int ny = y + dy[i]; - - if (0 <= nx && nx < 5 && 0 <= ny && ny < 5) { - if (str.length() != 6) { - dfs(nx, ny, str + graph[nx][ny]); - } - } - } - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - graph = new int[5][5]; - arr = new int[1000000]; - String str = ""; - - for (int i = 0; i < 5; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0; j < 5; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 5; j++) { - for (int k = 0; k < 4; k++) { - int nx = i + dx[k]; - int ny = j + dy[k]; - - if (0 <= nx && nx < 5 && 0 <= ny && ny < 5) { - if (str.length() != 6) { - dfs(nx, ny, str + graph[nx][ny]); - } - } - } - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2217.java b/JAVA_2021/src/BOJ/BOJ_2217.java deleted file mode 100644 index 3694695..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2217.java +++ /dev/null @@ -1,31 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.Collections; - -public class BOJ_2217 { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int N = Integer.parseInt(br.readLine()); - Integer[] arr = new Integer[N]; - - for (int i = 0 ; i < N; i++) { - arr[i] = Integer.parseInt(br.readLine()); - } - - Arrays.sort(arr, Collections.reverseOrder()); - - int max = -123456789; - for (int i = 0 ; i < N; i++) { - max = Math.max(max, arr[i] * (i + 1)); - } - - System.out.println(max); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2309.java b/JAVA_2021/src/BOJ/BOJ_2309.java deleted file mode 100644 index 2d1f294..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2309.java +++ /dev/null @@ -1,35 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class BOJ_2309 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int[] arr = new int[9]; - - int sum = 0; - for (int i = 0; i < 9; i++) { - arr[i] = Integer.parseInt(br.readLine()); - sum += arr[i]; - } - - Arrays.sort(arr); - - for (int i = 0; i < 9; i++) { - for (int j = i + 1; j < 9; j++) { - if (sum - arr[i] - arr[j] == 100) { - for (int k = 0; k < 9; k++) { - if (i == k || j == k) { - continue; - } - System.out.println(arr[k]); - } - System.exit(0); - } - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2309_2.java b/JAVA_2021/src/BOJ/BOJ_2309_2.java deleted file mode 100644 index bbe1c76..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2309_2.java +++ /dev/null @@ -1,38 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class BOJ_2309_2 { - private static int[] arr, num, ans; - - private static void Combination(int depth, int start, int sum) { - if (depth == 7 & sum == 100) { - ans = num.clone(); - return; - } else if (depth == 7) return; - - for (int i = start; i < 9; i++) { - num[depth] = arr[i]; - Combination(depth + 1, i + 1,sum + arr[i]); - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - arr = new int[9]; - num = new int[7]; - - for (int i = 0; i < 9; i++) { - arr[i] = Integer.parseInt(br.readLine()); - } - - Combination(0, 0, 0); - Arrays.sort(ans); - for (int i : ans) System.out.println(i); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2331.java b/JAVA_2021/src/BOJ/BOJ_2331.java deleted file mode 100644 index 6753d9d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2331.java +++ /dev/null @@ -1,42 +0,0 @@ -package BOJ; - -import java.io.*; -import java.util.ArrayList; -import java.util.List; -import java.util.StringTokenizer; - -public class BOJ_2331 { - private static int A, P; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - StringTokenizer st = new StringTokenizer(br.readLine()); - A = Integer.parseInt(st.nextToken()); - P = Integer.parseInt(st.nextToken()); - - List list = new ArrayList(); - list.add(A); - - while (true) { - int tmp = list.get(list.size() - 1); - int result = 0; - - while (tmp != 0) { - result += (int) Math.pow(tmp % 10, (double) P); - tmp /= 10; - } - - if (list.contains(result)) { - int ans = list.indexOf(result); - bw.write(ans + "\n"); - break; - } - list.add(result); - } - bw.flush(); - bw.close(); - br.close(); - } - -} diff --git a/JAVA_2021/src/BOJ/BOJ_2407.java b/JAVA_2021/src/BOJ/BOJ_2407.java deleted file mode 100644 index 1fde0b5..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2407.java +++ /dev/null @@ -1,27 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.math.BigInteger; -import java.util.StringTokenizer; - -public class BOJ_2407 { - 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()); - BigInteger a = BigInteger.ONE; - BigInteger b = BigInteger.ONE; - - for (int i = 0 ; i < m; i++) { - a = a.multiply(new BigInteger(String.valueOf(n - i))); - b = b.multiply(new BigInteger(String.valueOf(i + 1))); - } - BigInteger ans = a.divide(b); - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2440.java b/JAVA_2021/src/BOJ/BOJ_2440.java deleted file mode 100644 index afe6078..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2440.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_2440 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - for (int i = 0; i < N; i++) { - for (int j = 0; j < i; j++) { - System.out.print(" "); - } - for (int k = N; k> i; k--) { - System.out.print("*"); - } - System.out.println(); - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2447.java b/JAVA_2021/src/BOJ/BOJ_2447.java deleted file mode 100644 index 33d68df..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2447.java +++ /dev/null @@ -1,53 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_2447 { - static char[][] arr; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - int N = Integer.parseInt(br.readLine()); - - arr = new char[N][N]; - - star(0, 0, N, false); - - for (int i = 0; i < N; i++) { - bw.write(arr[i]); - bw.write("\n"); - } - bw.flush(); - bw.close(); - } - - static void star(int x, int y, int N, boolean blank) { - if (blank) { - for (int i = x; i < x + N; i++) { - for (int j = y; j < y + N; j++) { - arr[i][j] = ' '; - } - } - return; - } - - if (N == 1) { - arr[x][y] = '*'; - return; - } - - int size = N / 3; - int count = 0; - for (int i = x; i < x + N; i += size) { - for (int j = y; j < y + N; j += size) { - count++; - if (count == 5) { // 공백 칸일 경우 - star(i, j, size, true); - } else { - star(i, j, size, false); - } - } - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2475.java b/JAVA_2021/src/BOJ/BOJ_2475.java deleted file mode 100644 index 7aab36d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2475.java +++ /dev/null @@ -1,25 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2475 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - int[] arr = new int[5]; - for (int i =0 ; i < 5; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - int ans = 0; - for (int i : arr) { - ans += Math.pow(i, 2); - } - - ans = ans % 10; - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2477.java b/JAVA_2021/src/BOJ/BOJ_2477.java deleted file mode 100644 index 3204017..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2477.java +++ /dev/null @@ -1,55 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_2477 { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int N = Integer.parseInt(br.readLine()); - int[] arr = new int[6]; - for (int i = 0 ; i < 6; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int d = Integer.parseInt(st.nextToken()); - arr[i] = Integer.parseInt(st.nextToken()); - } - - int w = 0; - int h = 0; - - for (int i = 0; i < 6; i++) { - if (i % 2 == 0) { - if (w < arr[i]) { - w = arr[i]; - } - } else { - if (h < arr[i]) { - h = arr[i]; - } - } - } - - int w2 = 0; - int h2 = 0; - - for (int i = 0; i < 6; i++) { - if (i % 2 == 0) { - if (h == arr[(i + 5) % 6] + arr[(i + 1) % 6]) { - w2 = arr[i]; - } - } else { - if (w == arr[(i + 5) % 6] + arr[(i + 1) % 6]) { - h2 = arr[i]; - } - } - } - - System.out.println(((w * h) - (w2 * h2)) * N); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2493.java b/JAVA_2021/src/BOJ/BOJ_2493.java deleted file mode 100644 index 6527f89..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2493.java +++ /dev/null @@ -1,37 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; -import java.util.StringTokenizer; - -public class BOJ_2493 { - private static int num; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - Stack stack = new Stack(); - - StringTokenizer st = new StringTokenizer(br.readLine()); - - for (int i = 1; i< N + 1; i++) { - num = Integer.parseInt(st.nextToken()); - while (!stack.isEmpty()) { - if (stack.peek()[1]> num) { - System.out.print(stack.peek()[0] + " "); - break; - } - stack.pop(); - } - - if (stack.isEmpty()) { - System.out.print("0 "); - } - - stack.push(new int[]{i, num}); - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2527.java b/JAVA_2021/src/BOJ/BOJ_2527.java deleted file mode 100644 index d2d4970..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2527.java +++ /dev/null @@ -1,48 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_2527 { - static StringTokenizer st; - static StringBuilder sb = new StringBuilder(); - static int x1, y1, x2, y2, tx1, ty1, tx2, ty2; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - for(int i = 0; i < 4; i++) { - st = new StringTokenizer(br.readLine()); - - x1 = Integer.parseInt(st.nextToken()); - y1 = Integer.parseInt(st.nextToken()); - x2 = Integer.parseInt(st.nextToken()); - y2 = Integer.parseInt(st.nextToken()); - - tx1 = Integer.parseInt(st.nextToken()); - ty1 = Integer.parseInt(st.nextToken()); - tx2 = Integer.parseInt(st.nextToken()); - ty2 = Integer.parseInt(st.nextToken()); - - sb.append(check(x1, y1, x2, y2, tx1, ty1, tx2, ty2) + "\n"); - } - - System.out.print(sb); - br.close(); - } - - - private static String check(int x1, int y1, int x2, int y2, int tx1, int ty1, int tx2, int ty2) { - if ((x2 == tx1 && y2 == ty1) || (x1 == tx2 && y2 == ty1) || (x2 == tx1 && y1 == ty2) || (x1 == tx2 && y1 == ty2)) { - return "c"; - } else if ((x2 == tx1 && y2 != ty1) || (x1 == tx2 && y2 != ty1) || (x2 != tx1 && y1 == ty2) || (x1 != tx2 && y1 == ty2)) { - return "b"; - } else if (x2 < tx1 || tx2 < x1 || y2 < ty1 || ty2 < y1) { - return "d"; - } else { - return "a"; - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2557.java b/JAVA_2021/src/BOJ/BOJ_2557.java deleted file mode 100644 index 723be8c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2557.java +++ /dev/null @@ -1,7 +0,0 @@ -package BOJ; - -public class BOJ_2557 { - public static void main(String [] args){ - System.out.println("Hello World!"); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2558.java b/JAVA_2021/src/BOJ/BOJ_2558.java deleted file mode 100644 index a6ddd20..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2558.java +++ /dev/null @@ -1,14 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_2558 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int A = Integer.parseInt(br.readLine()); - int B = Integer.parseInt(br.readLine()); - System.out.println(A + B); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2559.java b/JAVA_2021/src/BOJ/BOJ_2559.java deleted file mode 100644 index d2c5edf..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2559.java +++ /dev/null @@ -1,44 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_2559 { - private static int[] arr, tmp; - private static int N; - - private static void func(int depth, int k, int start, int idx) { - if (k == N + 1) return; - int ans = 0; - for (int i = start; i <= k; i++) { - ans += arr[i]; - tmp[idx] = ans; - } - func(depth + 1, k + 1, start + 1, idx + 1); - - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - int K = Integer.parseInt(st.nextToken()); - - arr = new int[N + 1]; - st = new StringTokenizer(br.readLine()); - for (int i = 1; i <= N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - tmp = new int[N - K + 1]; - func(0, K, 1, 0); - - Arrays.sort(tmp); - System.out.println(tmp[tmp.length - 1]); - - - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2562.java b/JAVA_2021/src/BOJ/BOJ_2562.java deleted file mode 100644 index e1345e8..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2562.java +++ /dev/null @@ -1,26 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_2562 { - public static void main(String[] args) { - - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - int i, place; - - i = 1; - place = 1; - - while (i < 9) { - int new_n = sc.nextInt(); - i ++; - if (new_n> n) { - n = new_n; - place = i; - } - } - System.out.println(n); - System.out.println(place); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2563.java b/JAVA_2021/src/BOJ/BOJ_2563.java deleted file mode 100644 index a0f099c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2563.java +++ /dev/null @@ -1,32 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2563 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[][] graph = new int[100][100]; - int ans = 0; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int x = Integer.parseInt(st.nextToken()); - int y = Integer.parseInt(st.nextToken()); - - for (int j = x; j < x + 10; j++) { - for (int k = y; k < y + 10; k++) { - if (graph[j][k] == 1) continue; - graph[j][k] = 1; - ans++; - } - } - } - System.out.println(ans); - br.close(); - } -} - diff --git a/JAVA_2021/src/BOJ/BOJ_2564.java b/JAVA_2021/src/BOJ/BOJ_2564.java deleted file mode 100644 index 9e10dc2..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2564.java +++ /dev/null @@ -1,81 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.StringTokenizer; - -public class BOJ_2564 { - static class Pair { - int dir, x, y; - - public Pair(int dir, int c, int r, int dis) { - this.dir = dir; - - if (dir == 1) { // 북 - this.x = dis; - this.y = 0; - } else if (dir == 2) { // 남 - this.x = dis; - this.y = c; - } else if (dir == 3) { // 서 - this.x = 0; - this.y = dis; - } else { // 동 - this.x = r; - this.y = dis; - } - } - } - - - public static void main(String[] args) throws IOException{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - int r = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - int n = Integer.parseInt(br.readLine()); - - ArrayList arr = new ArrayList(); - - for (int i = 0; i < n; i++) { - st = new StringTokenizer(br.readLine()); - int dir = Integer.parseInt(st.nextToken()); - int dis = Integer.parseInt(st.nextToken()); - Pair p = new Pair(dir, c, r, dis); - arr.add(p); - } - - st = new StringTokenizer(br.readLine()); - int d = Integer.parseInt(st.nextToken()); - int v = Integer.parseInt(st.nextToken()); - Pair dong = new Pair(d, c, r, v); - int tmp = 0; - int ans = 0; - - if (d == 1) { - tmp = 2; - } else if (d == 2) { - tmp = 1; - } else if (d == 3) { - tmp = 4; - } else { - tmp = 3; - } - - for(Pair p : arr) { - if (p.dir == tmp) { - if (p.dir == 1 || p.dir == 2) { - ans += Math.min(dong.y + p.y + dong.x + p.x, dong.y + p.y + r - dong.x + r - p.x); - } else { - ans += Math.min(c - dong.y + c - p.y + dong.x + p.x, dong.y + p.y + dong.x + p.x); - } - } else { - ans += Math.abs(dong.y - p.y) + Math.abs(dong.x - p.x); - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2567.java b/JAVA_2021/src/BOJ/BOJ_2567.java deleted file mode 100644 index 739865e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2567.java +++ /dev/null @@ -1,48 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2567 { - private static int[][] graph; - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - graph = new int[101][101]; - - int N = Integer.parseInt(br.readLine()); - - for (int t = 0; t < N; t++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int x = Integer.parseInt(st.nextToken()); - int y = Integer.parseInt(st.nextToken()); - - for (int i = x; i < x + 10; i++) { - for (int j = y; j < y + 10; j++) { - graph[i][j] = 1; - } - } - } - int ans = 0; - for (int i = 0; i < graph.length; i++) { - for (int j = 0; j < graph[i].length; j++) { - if (graph[i][j] == 1) { - for (int d = 0; d < 4; d++) { - int nx = i + dx[d]; - int ny = j + dy[d]; - - if (graph[nx][ny] == 0 || nx < 0 || nx> 100 || ny < 0 || ny> 100) { - ans++; - } - } - } - } - } - System.out.println(ans); - br.close(); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2577.java b/JAVA_2021/src/BOJ/BOJ_2577.java deleted file mode 100644 index cb4949a..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2577.java +++ /dev/null @@ -1,25 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_2577 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int A = sc.nextInt(); - int B = sc.nextInt(); - int C = sc.nextInt(); - int result = A * B * C; - int[] ans = new int[10]; - - while (result> 0) { - ans[result % 10]++; - result /= 10; - } - - for (int i : ans) { - System.out.println(i); - } - - sc.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2578.java b/JAVA_2021/src/BOJ/BOJ_2578.java deleted file mode 100644 index 53076d3..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2578.java +++ /dev/null @@ -1,76 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_2578 { - private static int[][] graph; - - private static int check(int r, int c) { - int cnt = 0; - - for (int i = 0; i < 5; i++) { - int rowCnt = 0; - for (int j = 0; j < 5; j++) { - if (graph[i][j] == -1) rowCnt++; - } - if (rowCnt == 5) cnt++; - } - - for (int i = 0; i < 5; i++) { - int colCnt = 0; - for (int j = 0; j < 5; j++) { - if (graph[j][i] == -1) colCnt++; - } - if (colCnt == 5) cnt++; - } - - int crossCnt = 0; - for (int i = 4; i>= 0; i--) { - if (graph[4 - i][i] == -1) crossCnt++; - if (crossCnt == 5) cnt++; - } - - crossCnt = 0; - for (int i = 0; i < 5; i++) { - if (graph[i][i] == -1) crossCnt++; - if (crossCnt == 5) cnt++; - } - - return cnt; - } - - - - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - graph = new int[5][5]; - - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 5; j++) { - graph[i][j] = sc.nextInt(); - } - } - - int cnt = 0; - - - for (int i = 0; i < 25; i++) { - int cmd = sc.nextInt(); - cnt++; - - for (int x = 0; x < 5; x++) { - for (int y = 0; y < 5; y++) { - if (graph[x][y] == cmd) { - graph[x][y] = -1; - - if (check(x, y)>= 3) { - System.out.println(cnt); - return; - } - } - } - } - } - sc.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2578_2.java b/JAVA_2021/src/BOJ/BOJ_2578_2.java deleted file mode 100644 index 734cc6f..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2578_2.java +++ /dev/null @@ -1,89 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_2578_2 { - private static int[][] arr; - private static ArrayList cmd; - private static StringTokenizer st; - - private static int bingoCheck(int x, int y) { - int cnt = 0; - - for (int i = 0; i < 5; i++) { - int rowCnt = 0; - for (int j = 0; j < 5; j++) { - if (arr[i][j] == -1) rowCnt++; - } - if (rowCnt == 5) cnt++; - } - - for (int i = 0; i < 5; i++) { - int colCnt = 0; - for (int j = 0; j < 5; j++) { - if (arr[j][i] == -1) colCnt++; - } - if (colCnt == 5) cnt++; - } - - int crossCnt = 0; - for (int i = 4; i>= 0; i--) { - if (arr[4 - i][i] == -1) crossCnt++; - if (crossCnt == 5) cnt++; - } - - int crossCnt2 = 0; - for (int i = 0; i < 5; i++) { - if (arr[i][i] == -1) crossCnt2++; - if (crossCnt2 == 5) cnt++; - } - - return cnt; - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - arr = new int[5][5]; - - for (int i = 0; i < 5; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0; j < 5; j++) { - arr[i][j] = Integer.parseInt(st.nextToken()); - } - } - - cmd = new ArrayList(); - for (int i = 0; i < 5; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0; j < 5; j++) { - cmd.add(Integer.parseInt(st.nextToken())); - } - } - - int cnt = 0; - for (int i = 0; i < 25; i++) { - int tmp = cmd.get(i); - cnt++; - - for (int x = 0; x < 5; x++) { - for (int y = 0; y < 5; y++) { - if (arr[x][y] == tmp) { - arr[x][y] = -1; - - if (bingoCheck(x, y)>= 3) { - System.out.println(cnt); - return; - } - } - } - } - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2605.java b/JAVA_2021/src/BOJ/BOJ_2605.java deleted file mode 100644 index a5f3164..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2605.java +++ /dev/null @@ -1,31 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.LinkedList; -import java.util.StringTokenizer; - -public class BOJ_2605 { - private static int n; - private static int[] cmd; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - n = Integer.parseInt(br.readLine()); - - StringTokenizer st = new StringTokenizer(br.readLine()); - cmd = new int[n]; - - for (int i = 0; i < n; i++) { - cmd[i] = Integer.parseInt(st.nextToken()); - } - - LinkedList list=new LinkedList(); - - for(int i = 0; i < n; i++) - list.add(list.size() - cmd[i], i + 1); - - for(int i = 0; i < n; i++) - System.out.print(list.get(i) + " "); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2606.java b/JAVA_2021/src/BOJ/BOJ_2606.java deleted file mode 100644 index d20a113..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2606.java +++ /dev/null @@ -1,79 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.LinkedList; -import java.util.Queue; - -public class BOJ_2606 { - static int N, M; - static int[][] graph; - static boolean[] visited; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - M = Integer.parseInt(br.readLine()); - - graph = new int[N + 1][N + 1]; - visited = new boolean[N + 1]; - - for (int i = 1; i <= M; i++) { - String[] tmp = br.readLine().split(" "); - int a = Integer.parseInt(tmp[0]); - int b = Integer.parseInt(tmp[1]); - - graph[a][b] = graph[b][a] = 1; - } - System.out.println(BFS(1)); - } - - static int BFS(int start) { - int cnt = 0; - Queue q = new LinkedList(); - q.offer(start); - visited[start] = true; - - while (!q.isEmpty()) { - int x = q.poll(); - for (int i = 1; i <= N; i++) { - if (graph[x][i] == 1 && !visited[i]) { - q.offer(i); - visited[i] = true; - cnt++; - } - } - } - return cnt; - } -} - - -/* -node = int(input()) -edge = int(input()) - -graph = [[] for _ in range(node + 1)] -cnt = 0 - -for _ in range(edge): - a, b = map(int, input().split()) - graph[a].append(b) - graph[b].append(a) - - -def dfs(start_node): - global cnt - cnt +=1 - visited[start_node] = True - - for i in graph[start_node]: - if not visited[i]: - dfs(i) - return cnt -1 - - -visited = [False] * (node + 1) -print(dfs(1)) - */ \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2636.java b/JAVA_2021/src/BOJ/BOJ_2636.java deleted file mode 100644 index 0d71b2b..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2636.java +++ /dev/null @@ -1,97 +0,0 @@ -package BOJ; - -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 BOJ_2636 { - private static int N, M; - private static int[][] graph; - private static boolean[][] visited; - private static Queue queue; - - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - private static int bfs(int leftCheese) { - while (!queue.isEmpty()){ - Node node = queue.poll(); - int x = node.x; - int y = node.y; - - for (int d = 0; d < 4; d++) { - int nx = x + dx[d]; - int ny = y + dy[d]; - - if (0 <= nx && nx < N && 0 <= ny && ny < M && !visited[nx][ny]) { - visited[nx][ny] = true; - if (graph[nx][ny] == 1) { - graph[nx][ny] = 2; - leftCheese--; - } else{ - queue.offer(new Node(nx, ny)); - } - } - } - } - return leftCheese; - } - - private static void remove() { - for (int i = 0 ; i < N; i++) { - for (int j = 0 ; j< M; j++) { - if (graph[i][j] == 2) { - graph[i][j] = 0; - } - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] line = br.readLine().split(" "); - N = Integer.parseInt(line[0]); - M = Integer.parseInt(line[1]); - - graph = new int[N][M]; - int leftCheese = 0; - for (int i = 0 ; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0 ; j < M; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - if (graph[i][j] == 1) leftCheese++; - } - } - - queue = new LinkedList(); - int cnt = 0; - int tmp = leftCheese; - - while (leftCheese != 0) { - visited = new boolean[N][M]; - queue.offer(new Node(0, 0)); - visited[0][0] = true; - - leftCheese = bfs(leftCheese); - if (leftCheese != 0) tmp = leftCheese; - cnt++; - remove(); - } - - StringBuilder sb = new StringBuilder(); - sb.append(cnt).append("\n").append(tmp); - System.out.println(sb); - br.close(); - } - private static class Node{ - int x, y; - - public Node(int x, int y) { - this.x = x; - this.y = y; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2670.java b/JAVA_2021/src/BOJ/BOJ_2670.java deleted file mode 100644 index 4d6690a..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2670.java +++ /dev/null @@ -1,31 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class BOJ_2670 { - private static int N; - private static double[] arr; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - arr = new double[N]; - - for (int i = 0 ; i < N; i++) { - arr[i] = Double.parseDouble(br.readLine()); - } - - double max = arr[0]; - - for (int i = 1; i < N; i++) { - arr[i] = Math.max(arr[i], arr[i - 1] * arr[i]); - max = Math.max(max, arr[i]); - } - - System.out.printf("%.3f", max); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2675.java b/JAVA_2021/src/BOJ/BOJ_2675.java deleted file mode 100644 index f2d1878..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2675.java +++ /dev/null @@ -1,29 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2675 { - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st; - int t = Integer.parseInt(br.readLine()); - - for (int i = 0; i < t; i++) { - st= new StringTokenizer(br.readLine()); - int R = Integer.parseInt(st.nextToken()); - String S = st.nextToken(); - - for (int j = 0; j < S.length(); j++) { - for (int a = 0; a < R; a++) { - System.out.print(S.charAt(j)); - } - } - - System.out.println(); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2739.java b/JAVA_2021/src/BOJ/BOJ_2739.java deleted file mode 100644 index 6efe00c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2739.java +++ /dev/null @@ -1,15 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_2739 { - public static void main(String[] args){ - - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - - for (int i = 1; i< 10; i++){ - System.out.println(String.format("%d * %d = %d", n, i, n * i)); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2741.java b/JAVA_2021/src/BOJ/BOJ_2741.java deleted file mode 100644 index 36b550d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2741.java +++ /dev/null @@ -1,19 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2741 { - 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()); - - for (int i = 1; i < n + 1; i++) { - System.out.println(i); - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_2747.java b/JAVA_2021/src/BOJ/BOJ_2747.java deleted file mode 100644 index 1f00925..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2747.java +++ /dev/null @@ -1,20 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_2747 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - - int[] arr = new int[N + 1]; - arr[0] = 0; - arr[1] = 1; - - for (int i = 2; i < N + 1; i++){ - arr[i] = arr[i - 1] + arr[i - 2]; - } - - System.out.println(arr[N]); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2750.java b/JAVA_2021/src/BOJ/BOJ_2750.java deleted file mode 100644 index 52e1528..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2750.java +++ /dev/null @@ -1,29 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_2750 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - int[] arr = new int[N]; - - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(br.readLine()); - } - int tmp; - for (int i = 0; i < N; i++) { - for (int j = i + 1; j < N; j++) { - if (arr[i]> arr[j]) { - tmp = arr[i]; - arr[i] = arr[j]; - arr[j] = tmp; - } - } - } - for (int i = 0; i < arr.length; i++) { - System.out.println(arr[i]); - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2751.java b/JAVA_2021/src/BOJ/BOJ_2751.java deleted file mode 100644 index 17e11bd..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2751.java +++ /dev/null @@ -1,26 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_2751 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - - int N = Integer.parseInt(br.readLine()); - boolean[] arr = new boolean[2000001]; - - for (int i = 0; i < N; i++) { - arr[Integer.parseInt(br.readLine()) + 1000000] = true; - } - - for (int i = 0; i < arr.length; i++) { - if (arr[i]) { - sb.append((i - 1000000)).append('\n'); - } - } - - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2753.java b/JAVA_2021/src/BOJ/BOJ_2753.java deleted file mode 100644 index 786c665..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2753.java +++ /dev/null @@ -1,16 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_2753 { - public static void main(String [] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - - if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) { - System.out.println("1"); - } else { - System.out.println("0"); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2798.java b/JAVA_2021/src/BOJ/BOJ_2798.java deleted file mode 100644 index b348b28..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2798.java +++ /dev/null @@ -1,34 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_2798 { - static int ans = 0; - static int tmp = 0; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] inputStr = br.readLine().split(" "); - String[] arr = br.readLine().split(" "); - - int n = Integer.parseInt(inputStr[0]); - int m = Integer.parseInt(inputStr[1]); - - for (int i = 0; i < n - 2; i++) { - for (int j = (i + 1); j < n - 1; j++) { - for (int k = (i + 2); k < n; k++) { - if (!(i == j) && !(j == k) && !(i == k)) { - tmp = Integer.parseInt(arr[i]) + - Integer.parseInt(arr[j]) + - Integer.parseInt(arr[k]); - if (m>= tmp && ans < tmp) { - ans = tmp; - } - } - } - } - } - br.close(); - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2798_2.java b/JAVA_2021/src/BOJ/BOJ_2798_2.java deleted file mode 100644 index cf32120..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2798_2.java +++ /dev/null @@ -1,41 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_2798_2 { - 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[] arr = new int[N]; - st = new StringTokenizer(br.readLine()); - for (int i =0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - int ans = 0; - int tmp; - for (int i = 0 ; i < N - 2; i++) { - for (int j = i + 1; j < N - 1; j++) { - for (int k = i + 2; k < N; k++) { - if (!(i == j) && !(j == k) && !(i == k)) { - tmp = arr[i] + arr[j] + arr[k]; - if (tmp <= M && ans < tmp) { - ans = tmp; - } - } - - } - } - } - System.out.println(ans); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2810.java b/JAVA_2021/src/BOJ/BOJ_2810.java deleted file mode 100644 index 4a0a921..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2810.java +++ /dev/null @@ -1,50 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; - -public class BOJ_2810 { - static boolean[] cupHolders; - public static void main(String args[]) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.valueOf(br.readLine()); - String line = br.readLine(); -// True : 컵홀더 사용중 또는 컵홀더 사용 불가능. False : 컵홀더 미사용 - cupHolders = new boolean[n + 1]; - int count = 0; - boolean checked = false; // 커플석 한 쌍 중 커플석 시작한 경우 True -// 컵홀더 개수 세기 - - for(int i = 0; i < n; i++) { - char ch = line.charAt(i); -// 커플석 판단 - if(ch == 'L') { - if(!checked) { - checked = true; -// 커플석 오른쪽 컵홀더 제거 - cupHolders[i + 1] = true; - } - else { - checked = false; - } - } -// 컵홀더에 컵두기 - if(!cupHolders[i]) { // 왼쪽 - cupHolders[i] = true; - count++; - } - else if(!cupHolders[i + 1]) { // 오른쪽 - cupHolders[i + 1] = true; - count++; - } - else { // 양쪽 다 컵이 놓여져있으면 - } - } - System.out.println(count); - } -} - diff --git a/JAVA_2021/src/BOJ/BOJ_2839.java b/JAVA_2021/src/BOJ/BOJ_2839.java deleted file mode 100644 index b82077f..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2839.java +++ /dev/null @@ -1,23 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_2839 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - int ans = 0; - int x = 0; - - for (int i = n / 5; i>= 0; i--) { - if ((n - 5 * i) % 3 == 0) { - x = (n - 5 * i) / 3; - ans = i + x; - break; - } else { - ans = -1; - } - } - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2839_2.java b/JAVA_2021/src/BOJ/BOJ_2839_2.java deleted file mode 100644 index a9bcd86..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2839_2.java +++ /dev/null @@ -1,31 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_2839_2 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - - int cnt = 0; - - while (true) { - if (n % 5 == 0) { - cnt += (n / 5); - System.out.println(cnt); - break; - } - - n -= 3; - cnt++; - - if (n < 0) { - System.out.println(-1); - break; - } - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2851.java b/JAVA_2021/src/BOJ/BOJ_2851.java deleted file mode 100644 index c9a1494..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2851.java +++ /dev/null @@ -1,28 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_2851 { - private static int[] arr; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - arr = new int[10]; - - int sum = 0; - for (int i = 0 ;i < 10; i++) { - arr[i] = Integer.parseInt(br.readLine()); - } - - for (int i = 0; i < 10; i++) { - sum += arr[i]; - - if (sum>= 100) break; - } - - System.out.println(sum); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2858.java b/JAVA_2021/src/BOJ/BOJ_2858.java deleted file mode 100644 index 1553154..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2858.java +++ /dev/null @@ -1,35 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2858 { - private static int R, B; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - R = Integer.parseInt(st.nextToken()); - B = Integer.parseInt(st.nextToken()); - - for (int i = 3; i < 2000; i++) { - for (int j = 3; j < i + 1; j++) { - int tmp = (i * 2) + ((j - 2) * 2); - if ((tmp == R) && ((i * j) - tmp) == B) { - System.out.println(i + " " + j); - } - } - } - br.close(); - } - - - /* - 10 2>> 4 3 - 12 3>> 5 3 - 14 4>> 6 3 - 16 9>> 5 5 - */ -} diff --git a/JAVA_2021/src/BOJ/BOJ_2870.java b/JAVA_2021/src/BOJ/BOJ_2870.java deleted file mode 100644 index 4b7feb8..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2870.java +++ /dev/null @@ -1,31 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Arrays; - -public class BOJ_2870 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int N = Integer.parseInt(br.readLine()); - ArrayList arr = new ArrayList(); - String[] line; - - for (int i = 0; i < N; i++) { - line = br.readLine().split("\\D"); - for (int j = 0; j < line.length; j++) { - if (!line[j].equals("")) arr.add(new BigInteger(line[j])); - } - } - - arr.sort(null); - for (int i = 0; i < arr.size(); i++) { - System.out.println(arr.get(i)); - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2908.java b/JAVA_2021/src/BOJ/BOJ_2908.java deleted file mode 100644 index c69e740..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2908.java +++ /dev/null @@ -1,29 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_2908 { - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st; - st = new StringTokenizer(br.readLine()); - - while (st.hasMoreElements()) { - int A = Integer.parseInt(st.nextToken()); - int B = Integer.parseInt(st.nextToken()); - - int AA = ((A % 10) * 100) + (((A / 10) % 10) * 10) + (A / 100); - int BB = ((B % 10) * 100) + (((B / 10) % 10) * 10) + (B / 100); - - if (AA> BB) { - System.out.println(AA); - } else { - System.out.println(BB); - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2920.java b/JAVA_2021/src/BOJ/BOJ_2920.java deleted file mode 100644 index 649edbc..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2920.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_2920 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String asc = "1 2 3 4 5 6 7 8"; - String desc = "8 7 6 5 4 3 2 1"; - - String in = sc.nextLine(); - - if (in.equals(asc)) { - System.out.println("ascending"); - } else if (in.equals(desc)) { - System.out.println("descending"); - } else { - System.out.println("mixed"); - } - sc.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2941.java b/JAVA_2021/src/BOJ/BOJ_2941.java deleted file mode 100644 index 1f697a9..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2941.java +++ /dev/null @@ -1,43 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_2941 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String text = br.readLine(); - - int n = 0; - - for(int i=0; i Math.abs(sour - bitter) && bitter != 0) { - ans = Math.abs(sour - bitter); - } - return; - } - flag[depth] = true; - Permutation(depth + 1, sour * S[depth], bitter + B[depth]); - flag[depth] = false; - Permutation(depth + 1, sour, bitter); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - - S = new int[N]; - B = new int[N]; - flag = new boolean[N]; - - ans = 123456789; - - for (int i = 0 ; i < N; i ++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - S[i] = Integer.parseInt(st.nextToken()); - B[i] = Integer.parseInt(st.nextToken()); - } - Permutation(0, 1, 0); - System.out.println(ans); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_2999.java b/JAVA_2021/src/BOJ/BOJ_2999.java deleted file mode 100644 index 8196e22..0000000 --- a/JAVA_2021/src/BOJ/BOJ_2999.java +++ /dev/null @@ -1,41 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_2999 { - private static int R, C; - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - char[] arr = br.readLine().toCharArray(); - int len = arr.length; - - for (int i = 1; i < len; i++) { - if (len % i == 0 && i <= len / i) { - R = Math.max(R, i); - C = len / R; - } - } - if (R == 0 && C == 0) { - R = 1; - C = 1; - } - - int idx = 0; - - char[][] graph = new char[R][C]; - - for (int i = 0; i < C; i++) { - for (int j = 0; j < R; j++) { - graph[j][i] = arr[idx++]; - } - } - - for(int i = 0; i < R; i++) { - for (int j = 0; j < C; j++) { - System.out.print(graph[i][j]); - } - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_3040.java b/JAVA_2021/src/BOJ/BOJ_3040.java deleted file mode 100644 index e3ae80d..0000000 --- a/JAVA_2021/src/BOJ/BOJ_3040.java +++ /dev/null @@ -1,40 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class BOJ_3040 { - - private static int[] tmp, arr, ans; - private static void Combination(int depth, int start, int sum) { - if (depth == 7 && sum == 100) { - ans = tmp.clone(); - return; - } else if (depth == 7) return; - - for (int i = start; i < 9; i++) { - tmp[depth] = arr[i]; - Combination(depth + 1, i + 1, sum + arr[i]); - } - - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - arr = new int[9]; - tmp = new int[7]; - ans = new int[7]; - - for (int i = 0; i < 9; i++) { - arr[i] = Integer.parseInt(br.readLine()); - } - - Combination(0, 0, 0); - for (int i : ans) { - System.out.println(i); - } - br.close(); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_3052.java b/JAVA_2021/src/BOJ/BOJ_3052.java deleted file mode 100644 index 59b9570..0000000 --- a/JAVA_2021/src/BOJ/BOJ_3052.java +++ /dev/null @@ -1,26 +0,0 @@ -package BOJ; - -import java.io.*; - -public class BOJ_3052 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int[] arr = new int[50]; - - for (int i = 0; i < 10; i++) { - int n = Integer.parseInt(br.readLine()); - int tmp = n % 42; - arr[tmp]++; - } - - int cnt = 0; - - for (int i = 0; i < arr.length; i++) { - if (arr[i]>= 1) { - cnt ++; - } - } - - System.out.println(cnt); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_3101.java b/JAVA_2021/src/BOJ/BOJ_3101.java deleted file mode 100644 index 4f86bbf..0000000 --- a/JAVA_2021/src/BOJ/BOJ_3101.java +++ /dev/null @@ -1,67 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_3101 { - static int n, m, x = 1, y = 1; - static long allSum = 1; - static long[] dp; - - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - n = Integer.parseInt(st.nextToken()); - m = Integer.parseInt(st.nextToken()); - init(); - char[] input = br.readLine().toCharArray(); - - for (int i = 0; i < m; i++) { - switch (input[i]) { - case 'U': - if (x> n) - ++y; - --x; - break; - case 'D': - if (x>= n) - --y; - ++x; - break; - case 'L': - if (x <= n) - --y; - --x; - break; - case 'R': - if (x < n) - ++y; - ++x; - break; - } - allSum += calc(x, y); - } - System.out.println(allSum); - } - private static void init() { - dp = new long[n * 2 + 1]; - for (int i = 1; i < n * 2; ++i) { - dp[i] = dp[i - 1] + chk(i); - } - } - private static long calc(int x, int y) { - long res = 0; - if (x % 2 == 1) { - res = dp[x - 1] + y; - } else { - res = dp[x] - y + 1; - } - return res; - } - private static long chk(int i) { - return i> n ? n - i % n : i; - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_3109.java b/JAVA_2021/src/BOJ/BOJ_3109.java deleted file mode 100644 index 7ee487c..0000000 --- a/JAVA_2021/src/BOJ/BOJ_3109.java +++ /dev/null @@ -1,60 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_3109 { - private static int[] dx = {-1, 0, 1}; - private static int[] dy = {1, 1, 1}; - private static int R, C, ans; - private static char[][] graph; - private static boolean flag; - - private static void dfs(int x, int y) { - if (y == C - 1){ - flag = true; - ans++; - return; - } - - for (int i = 0 ; i <3; i++) { - int nx = x + dx[i]; - int ny = y + dy[i]; - - if (0 <= nx && nx < R && 0 <= ny && ny < C) { - if (graph[nx][ny] == '.') { - graph[x][y] = 'x'; - dfs(nx, ny); - if (flag) return; - } - } - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - R = Integer.parseInt(st.nextToken()); - C = Integer.parseInt(st.nextToken()); - - graph = new char[R][C]; - - for (int i = 0; i < R; i++) { - st = new StringTokenizer(br.readLine()); - graph[i] = st.nextToken().toCharArray(); - } - - for (int i = 0; i < R; i++) { - flag = false; - dfs(i, 0); - } - System.out.println(ans); - - br.close(); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_3985.java b/JAVA_2021/src/BOJ/BOJ_3985.java deleted file mode 100644 index 2bce7e1..0000000 --- a/JAVA_2021/src/BOJ/BOJ_3985.java +++ /dev/null @@ -1,57 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class BOJ_3985 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int L = Integer.parseInt(br.readLine()); - int N = Integer.parseInt(br.readLine()); - - boolean[] chk = new boolean[L + 1]; - int[] perhaps = new int[N]; - int[] actually = new int[N]; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int From = Integer.parseInt(st.nextToken()); - int To = Integer.parseInt(st.nextToken()); - perhaps[i] = To - From + 1; - - for (int j = From; j <= To; j++) { - if (!chk[j]) { - chk[j] = true; - actually[i]++; - } - } - - } - - int perIdx = 0; - int actIdx = 0; - int perMax = 0; - int actMax = 0; - - for (int i = 0; i < N; i++) { - if (perhaps[i]> perMax) { - perMax = perhaps[i]; - perIdx = i + 1; - } - } - - for (int i = 0; i < N; i++) { - if (actually[i]> actMax) { - actMax = actually[i]; - actIdx = i + 1; - } - } - - System.out.println(perIdx); - System.out.println(actIdx); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_4740.java b/JAVA_2021/src/BOJ/BOJ_4740.java deleted file mode 100644 index ac48e38..0000000 --- a/JAVA_2021/src/BOJ/BOJ_4740.java +++ /dev/null @@ -1,21 +0,0 @@ -package BOJ; - -import java.util.Scanner; - -public class BOJ_4740 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - - while (true){ - StringBuilder sb = new StringBuilder(); - String s = sc.nextLine(); - if (s.equals("***")) break; - - for (int i = 0; i < s.length(); i++) { - sb.append(s.charAt(s.length() - i - 1)); - } - System.out.print(sb.toString() + "\n"); - } - sc.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_4796.java b/JAVA_2021/src/BOJ/BOJ_4796.java deleted file mode 100644 index a76a235..0000000 --- a/JAVA_2021/src/BOJ/BOJ_4796.java +++ /dev/null @@ -1,31 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_4796 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int i = 1; - while (true){ - StringTokenizer st = new StringTokenizer(br.readLine()); - StringBuilder sb = new StringBuilder(); - int L = Integer.parseInt(st.nextToken()); - int P = Integer.parseInt(st.nextToken()); - int V = Integer.parseInt(st.nextToken()); - - if (L == 0 && P == 0 && V == 0) break; - - int mok = V / P; - int sum = V % P; - - sb.append("Case ").append(i).append(": ").append(mok * L + Math.min(L, sum)); - System.out.println(sb); - i++; - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_5363.java b/JAVA_2021/src/BOJ/BOJ_5363.java deleted file mode 100644 index 7f325c5..0000000 --- a/JAVA_2021/src/BOJ/BOJ_5363.java +++ /dev/null @@ -1,19 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_5363 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int N = Integer.parseInt(br.readLine()); - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - String A = st.nextToken(); - System.out.println(A); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_5397.java b/JAVA_2021/src/BOJ/BOJ_5397.java deleted file mode 100644 index 1f2af77..0000000 --- a/JAVA_2021/src/BOJ/BOJ_5397.java +++ /dev/null @@ -1,59 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.*; - -public class BOJ_5397 { - - public static void main(String[] args) throws Exception{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int t = Integer.parseInt(br.readLine()); - - for(int j=0; j a1 = new Stack(); - Stack a2 = new Stack(); - - for(int i=0; i': - if(!a1.isEmpty()) { - a2.push(a1.pop()); - } - break; - case '-': - if(!a2.isEmpty()) { - a2.pop(); - } - break; - default: - if(str[i] != '<' && str[i] != '>' && str[i] != '-') { - a2.push(str[i]); - } - break; - } - } - - while(!a1.isEmpty()) { - a2.push(a1.pop()); - } - - StringBuilder sb = new StringBuilder(); - - for(int i=0; i queue, fire_queue; - - private static void logic() { - while (!fire_queue.isEmpty() || !queue.isEmpty()) { - int fqlen = fire_queue.size(); - for (int s = 0; s < fqlen; s++) { - Node f = fire_queue.poll(); - - for (int d = 0; d < 4; d++) { - int nx = f.x + dx[d]; - int ny = f.y + dy[d]; - - if (0 <= nx && nx < h && 0 <= ny && ny < w) { - if (graph[nx][ny] == '.' || graph[nx][ny] == '@') { - graph[nx][ny] = '*'; - fire_queue.add(new Node(nx, ny)); - } - } - } - } - - int qlen = queue.size(); - if (qlen> 0) { - step++; - - for (int s = 0; s < qlen; s++) { - Node n = queue.poll(); - - for (int d = 0; d < 4; d++) { - int nx = n.x + dx[d]; - int ny = n.y + dy[d]; - - if (nx < 0 || nx>= h || ny < 0 || ny>= w) { - flag = true; - return; - } - - if (graph[nx][ny] == '.') { - graph[nx][ny] = '@'; - queue.add(new Node(nx, ny)); - } - } - } - } else { - return; - } - } - } - - - public static void main (String[]args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - w = Integer.parseInt(st.nextToken()); - h = Integer.parseInt(st.nextToken()); - - graph = new char[h][w]; - flag = false; - step = 0; - - for (int i = 0; i < h; i++) { - graph[i] = br.readLine().toCharArray(); - } - - queue = new ArrayDeque(); - fire_queue = new ArrayDeque(); - - - for (int i = 0; i < h; i++) { - for (int j = 0; j < w; j++) { - if (graph[i][j] == '@') { - queue.add(new Node(i, j)); - } - if (graph[i][j] == '*') { - fire_queue.add(new Node(i, j)); - } - } - } - logic(); - System.out.println(flag == true ? step : "IMPOSSIBLE"); - } - br.close(); - } - - private static class Node { - int x, y; - - public Node(int x, int y) { - this.x = x; - this.y = y; - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_5585.java b/JAVA_2021/src/BOJ/BOJ_5585.java deleted file mode 100644 index 0f69eab..0000000 --- a/JAVA_2021/src/BOJ/BOJ_5585.java +++ /dev/null @@ -1,22 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_5585 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = 1000 - Integer.parseInt(br.readLine()); - - int cnt = 0; - int[] coins = {500, 100, 50, 10, 5, 1}; - - for (int i = 0 ; i < coins.length; i++) { - cnt += N / coins[i]; - N %= coins[i]; - } - System.out.println(cnt); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_5622.java b/JAVA_2021/src/BOJ/BOJ_5622.java deleted file mode 100644 index 5a62164..0000000 --- a/JAVA_2021/src/BOJ/BOJ_5622.java +++ /dev/null @@ -1,39 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_5622 { - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - String s = st.nextToken(); - char arr[] = s.toCharArray(); - - int ans = 0; - - for (int i = 0; i < arr.length; i++) { - if (arr[i] == 'A' || arr[i] == 'B'|| arr[i] =='C'){ - ans += 2; - } else if (arr[i] == 'D' || arr[i] == 'E'|| arr[i] =='F') { - ans += 3; - } else if (arr[i] == 'G' || arr[i] == 'H'|| arr[i] =='I') { - ans += 4; - } else if (arr[i] == 'J' || arr[i] == 'K'|| arr[i] =='L') { - ans += 5; - } else if (arr[i] == 'M' || arr[i] == 'N'|| arr[i] =='O') { - ans += 6; - } else if (arr[i] == 'P' || arr[i] == 'Q'|| arr[i] =='R' || arr[i] == 'S') { - ans += 7; - } else if (arr[i] == 'T' || arr[i] == 'U'|| arr[i] =='V') { - ans += 8; - } else if (arr[i] == 'W' || arr[i] == 'X'|| arr[i] =='Y' || arr[i] == 'Z') { - ans += 9; - } - } - System.out.println(ans + arr.length); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_7287.java b/JAVA_2021/src/BOJ/BOJ_7287.java deleted file mode 100644 index 7c808f6..0000000 --- a/JAVA_2021/src/BOJ/BOJ_7287.java +++ /dev/null @@ -1,9 +0,0 @@ -package BOJ; - -public class BOJ_7287 { - public static void main(String[] args) { - System.out.println(383); - System.out.println("hoijae0194"); - - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_7569.java b/JAVA_2021/src/BOJ/BOJ_7569.java deleted file mode 100644 index b50be46..0000000 --- a/JAVA_2021/src/BOJ/BOJ_7569.java +++ /dev/null @@ -1,88 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.LinkedList; -import java.util.Queue; -import java.util.StringTokenizer; - -class myPoint { - - int x, y, z; - myPoint(int z, int y, int x){ - this.z = z; - this.y = y; - this.x = x; - } -} - -public class BOJ_7569 { - static int w, h, channel; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - w = Integer.parseInt(st.nextToken()); - h = Integer.parseInt(st.nextToken()); - channel = Integer.parseInt(st.nextToken()); - - int map[][][] = new int[channel][h][w]; - boolean visited[][][] = new boolean[channel][h][w]; - Queue q = new LinkedList(); - for (int i = 0; i < channel; i++) { - for (int j = 0; j < h; j++) { - st = new StringTokenizer(br.readLine()); - for (int k = 0; k < w; k++) { - map[i][j][k] = Integer.parseInt(st.nextToken()); - if (map[i][j][k] == 1) { - visited[i][j][k] = true; - q.offer(new myPoint(i, j, k)); - map[i][j][k] = 0; - } - } - } - } - int dz[] = {-1,1,0,0,0,0}; - int dy[] = {0,0,1,-1,0,0}; - int dx[] = {0,0,0,0,1,-1}; - - int ans = 0; - while (!q.isEmpty()) { - int z = q.peek().z; - int y = q.peek().y; - int x = q.peek().x; - q.poll(); - for (int i = 0; i < 6; i++){ - int nz = z + dz[i]; - int ny = y + dy[i]; - int nx = x + dx[i]; - - if (condition(nz, ny, nx) && !visited[nz][ny][nx] && map[nz][ny][nx] == 0){ - map[nz][ny][nx] = map[z][y][x] + 1; - visited[nz][ny][nx] = true; - q.offer(new myPoint(nz, ny, nx)); - ans = ans <= map[nz][ny][nx] ? map[nz][ny][nx] : ans; - } - } - } - if (!checkZero(map, visited)) ans = -1; - System.out.println(ans); - } - - static boolean condition(int z, int y, int x) { - if (z>= 0 && y>= 0 && x>= 0 && z < channel && y < h && x crazyArduino = new LinkedList();; - - private static boolean myArduinoMove(int dir) { - int nx = myArduino.x + dx[dir]; - int ny = myArduino.y + dy[dir]; - - if (graph[nx][ny] == 'R') return false; - else { - myArduino.x = nx; - myArduino.y = ny; - return true; - } - } - - private static boolean crazyArduinoMove() { - int[][] tmp_graph = new int[R][C]; - int numOfCrazy = crazyArduino.size(); - - for (int i = 0 ; i< numOfCrazy; i++) { - int x = crazyArduino.peek().x; - int y = crazyArduino.poll().y; - - int min = 123456789; - int minX = 0; - int minY = 0; - - for (int d = 0; d < 9; d++) { - if (d == 4) continue; - int nx = x + dx[d]; - int ny = y + dy[d]; - - if (0 <= nx && nx < R && 0 <= ny && ny < C) { - int shortDistance = Math.abs(myArduino.x - nx) + Math.abs(myArduino.y - ny); - if (shortDistance < min) { - min = shortDistance; - minX = nx; - minY = ny; - } - } - } - if (minX == myArduino.x && minY == myArduino.y) return false; - tmp_graph[minX][minY] += 1; - } - - for (int i = 0 ; i < R; i++) { - for (int j = 0; j arr = new ArrayList();; - private static int end_point = 0; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - - N = Integer.parseInt(st.nextToken()); - K = Integer.parseInt(st.nextToken()); - - for (int i = 1; i <= N; i++) { - st = new StringTokenizer(br.readLine()); - int no = Integer.parseInt(st.nextToken()); - int gold = Integer.parseInt(st.nextToken()); - int silver = Integer.parseInt(st.nextToken()); - int bronze = Integer.parseInt(st.nextToken()); - arr.add(new Node2(no, gold, silver, bronze, 0)); - } - Collections.sort(arr); - arr.get(0).rank = 1; - - for (int i = 1; i < arr.size(); i++) { - int tmp_gold = arr.get(i - 1).gold; - int tmp_silver = arr.get(i - 1).silver; - int tmp_bronze = arr.get(i - 1).bronze; - Node2 now = arr.get(i); - - if (arr.get(i).no == K) { - end_point = i; - } - if (now.gold == tmp_gold && now.silver == tmp_silver && now.bronze == tmp_bronze) { - arr.get(i).rank = arr.get(i - 1).rank; - } else { - arr.get(i).rank = i + 1; - } - } - System.out.println(arr.get(end_point).rank); - } -} - -class Node2 implements Comparable { - int no; - int gold; - int silver; - int bronze; - int rank; - - public Node2(int no, int gold, int silver, int bronze, int rank) { - this.no = no; - this.gold = gold; - this.silver = silver; - this.bronze = bronze; - this.rank = rank; - } - - @Override - public int compareTo(Node2 o) { - if (this.gold == o.gold) { - if (this.silver == o.silver) { - return o.bronze - this.bronze; - } else { - return o.silver - this.silver; - } - } else { - return o.gold - this.gold; - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/BOJ/BOJ_9012.java b/JAVA_2021/src/BOJ/BOJ_9012.java deleted file mode 100644 index dc72347..0000000 --- a/JAVA_2021/src/BOJ/BOJ_9012.java +++ /dev/null @@ -1,44 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_9012 { - - public static boolean isCheck(String ps) { - int cnt = 0; - for (int i = 0 ; i < ps.length(); i++) { - if (ps.charAt(i) == '(') { - cnt++; - } else { - cnt--; - } - if (cnt < 0) { - return false; - } - } - if (cnt == 0) { - return true; - } - return false; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - - int T = Integer.parseInt(br.readLine()); - - for (int i = 0 ; i < T; i++) { - String s = br.readLine(); - if (isCheck(s)) { - sb.append("YES").append("\n"); - } else { - sb.append("NO").append("\n"); - } - } - System.out.println(sb.toString()); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_9205.java b/JAVA_2021/src/BOJ/BOJ_9205.java deleted file mode 100644 index 29dcc0e..0000000 --- a/JAVA_2021/src/BOJ/BOJ_9205.java +++ /dev/null @@ -1,116 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.Queue; -import java.util.StringTokenizer; - -public class BOJ_9205 { - private static int t, n; - private static ArrayList arr; - private static ArrayList[] edges; - private static boolean[] visited; - - - private static boolean checkBeer(Node point1, Node point2) { - int distance = Math.abs(point1.x - point2.x) + Math.abs(point1.y - point2.y); - if (distance <= 1000) { - return true; - } else{ - return false; - } - } - - private static void bfs(int start) { - Queue queue = new LinkedList(); - queue.offer((start)); - visited[start] = true; - while (!queue.isEmpty()) { - int current = queue.poll(); - for (int i : edges[current]) { - if (!visited[i]) { - queue.offer((i)); - visited[i] = true; - } - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - t = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= t; tc++) { - n = Integer.parseInt(br.readLine()); // 편의점 갯수 - - arr = new ArrayList(); - StringTokenizer st = new StringTokenizer(br.readLine()); - int house_x = Integer.parseInt(st.nextToken()); - int house_y = Integer.parseInt(st.nextToken()); - arr.add(new Node(house_x, house_y)); // 집 좌표 넣기 - - for (int i = 0; i (); - } - - for (int i = 0; i < n + 2; i++) { - for (int j = 0; j < n + 2; j++) { - if (i != j) { - if (checkBeer(arr.get(i), arr.get(j))) { - edges[i].add(j); - } - } - } - } - -// for (int i = 0 ; i < n + 2; i++) { -// System.out.println(edges[i].toString()); -// } - - bfs(0); - - if (visited[n + 1]) { - System.out.println("happy"); - } else { - System.out.println("sad"); - } - } - - br.close(); - } - - private static class Node { - int x, y; - - public Node(int x, int y) { - this.x = x; - this.y = y; - } - - @Override - public String toString() { - return "[" + x + ", " + y + ']'; - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_9205_FW.java b/JAVA_2021/src/BOJ/BOJ_9205_FW.java deleted file mode 100644 index 9c81cec..0000000 --- a/JAVA_2021/src/BOJ/BOJ_9205_FW.java +++ /dev/null @@ -1,54 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_9205_FW { - private static final int INF = (int) 1e9; - private static int N, M; - private static int[][] location; - private static int[][] distance; - - private static void mapping() { - for (int i = 0; i < M; i++) { - for (int j = 0 ;j < M; j++) { - int dis = Math.abs(location[i][0] - location[j][0]) + Math.abs(location[i][1] - location[j][1]); - distance[i][j] = dis> 1000 ? INF : 1; - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - N = Integer.parseInt(br.readLine()); - M = N + 2; - location = new int[M][2]; - distance = new int[M][M]; - - for (int i = 0 ; i < M ; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - location[i][0] = Integer.parseInt(st.nextToken()); - location[i][1] = Integer.parseInt(st.nextToken()); - } - mapping(); - - for (int k = 0; k < M; k++) { - for (int i = 0; i distance[i][k] + distance[k][j]) { - distance[i][j] = distance[i][k] + distance[k][j]; - } - } - } - } - System.out.println(distance[0][M - 1] == INF ? "sad" : "happy"); - } - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_9498.java b/JAVA_2021/src/BOJ/BOJ_9498.java deleted file mode 100644 index 54c77ea..0000000 --- a/JAVA_2021/src/BOJ/BOJ_9498.java +++ /dev/null @@ -1,26 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class BOJ_9498 { - 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()); - if (100>= n && n>= 90) { - System.out.print('A'); - } else if (90> n && n>= 80) { - System.out.print('B'); - } else if (80> n && n>= 70) { - System.out.print('C'); - } else if (70> n && n>= 60) { - System.out.print('D'); - } else { - System.out.print('F'); - } - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_9657.java b/JAVA_2021/src/BOJ/BOJ_9657.java deleted file mode 100644 index 4976739..0000000 --- a/JAVA_2021/src/BOJ/BOJ_9657.java +++ /dev/null @@ -1,14 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BOJ_9657 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int N = Integer.parseInt(br.readLine()); - System.out.println((N % 7 == 2 || N % 7 == 0) ? "CY" : "SK"); - br.close(); - } -} diff --git a/JAVA_2021/src/BOJ/BOJ_9663.java b/JAVA_2021/src/BOJ/BOJ_9663.java deleted file mode 100644 index 4d8efed..0000000 --- a/JAVA_2021/src/BOJ/BOJ_9663.java +++ /dev/null @@ -1,14 +0,0 @@ -package BOJ; - -import java.io.BufferedReader; -import java.io.InputStreamReader; - -public class BOJ_9663 { - private static int N; - - public static void main(String[] args) { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - - } -} diff --git a/JAVA_2021/src/SSAFY/GoodMorning.java b/JAVA_2021/src/SSAFY/GoodMorning.java deleted file mode 100644 index a581c65..0000000 --- a/JAVA_2021/src/SSAFY/GoodMorning.java +++ /dev/null @@ -1,95 +0,0 @@ -package SSAFY; - -import java.util.Arrays; -import java.util.Scanner; - -public class GoodMorning { - - - static int N,R; //N:입력받을 데이터 수(전체데이터) R:선택할 데이터 수 - static int[] input,res; //input:입력데이터저장 res:결과데이터저장 - static boolean[] visited; //visited: 방문체크용 배열 - - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - N = sc.nextInt(); - R = sc.nextInt(); - input = new int[N]; - res = new int[R]; - visited = new boolean[N]; - - for (int i = 0; i < N; i++) { - input[i] = sc.nextInt(); - } -// 1. input배열에서 R개의 수를 뽑아서 만들 수 있는 순열을 모두 출력하시오. - System.out.println("----- 순열 -----"); - makePermutation(0); - -// 2. input배열에서 R개의 수를 뽑아서 만들 수 있는 조합을 모두 출력하시오. - System.out.println("----- 조합 -----"); - makeCombination(0,0); - - visited = new boolean[N]; -// 3. input배열로 구성할 수 있는 모든 부분집합을 출력하시오. - System.out.println("----- 부분집합 -----"); - makeSubset(0); - - sc.close(); - }//main - - private static void makePermutation(int cnt) { - if (cnt == R) { - System.out.println(Arrays.toString(res)); - return; - } - - for (int i = 0; i < N; i++) { - if (visited[i]) continue; - res[cnt] = input[i]; - visited[i] = true; - makePermutation(cnt + 1); - visited[i] = false; - } - } - - private static void makeCombination(int cnt,int start) { - if (cnt == R) { - System.out.println(Arrays.toString(res)); - return; - } - - for (int i = start; i < N; i++) { - res[cnt] = input[i]; - makeCombination(cnt + 1, i + 1); - } - } - - private static void makeSubset(int cnt) { - if (cnt == N) { - System.out.print("["); - for (int i = 0; i < N; ++i) { - if (visited[i]) System.out.print(input[i] + " "); - } - System.out.println("]"); - return; - } - visited[cnt] = true; - makeSubset(cnt + 1); - visited[cnt] = false; - makeSubset(cnt + 1); -// if(cnt==N) { -// System.out.print("["); -// for(int i=0; i> graph; - private static int[] d = new int[100001]; - - private static void dijikstra(int start) { - PriorityQueue pq = new PriorityQueue(); - pq.offer(new Node(start, 0)); - d[start] = 0; - - while (!pq.isEmpty()) { - Node node = pq.poll(); - int dist = node.dist; - int now = node.idx; - - if (d[now] < dist) continue; // 현재 노드가 이미 처리된 적이 있다면 무시 - - for (int i = 0; i < graph.get(now).size(); i++) { - int cost = d[now] + graph.get(now).get(i).dist; - if (cost < d[graph.get(now).get(i).idx]) { - d[graph.get(now).get(i).idx] = cost; - pq.offer(new Node(graph.get(now).get(i).idx, cost)); - } - } - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - n = Integer.parseInt(st.nextToken()); - m = Integer.parseInt(st.nextToken()); - start = Integer.parseInt(br.readLine()); - graph = new ArrayList>(); - for (int i = 0 ; i <= n; i++) { - graph.add(new ArrayList()); - } - - for (int i = 0 ; i < m; i++) { - st = new StringTokenizer(br.readLine()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - graph.get(a).add(new Node(b, c)); - } - - Arrays.fill(d, INF); - - dijikstra(start); -// System.out.println(graph.get(1)); - for (int i = 1; i <= n; i++) { - if (d[i] == INF) { - System.out.println("INF"); - } else { - System.out.println(d[i]); - } - } - br.close(); - } - - private static class Node implements Comparable { - int idx, dist; - - public Node(int idx, int dist) { - this.idx = idx; - this.dist = dist; - } - - - @Override - public int compareTo(Node o) { - if (this.dist < o.dist) { - return -1; - } - return 1; - } - - @Override - public String toString() { - return "[" + idx + - ", " + dist + - ']'; - } - } -} diff --git "a/JAVA_2021/src/SSAFY/353円266円200円353円266円204円354円247円221円355円225円251円.java" "b/JAVA_2021/src/SSAFY/353円266円200円353円266円204円354円247円221円355円225円251円.java" deleted file mode 100644 index d12c3c9..0000000 --- "a/JAVA_2021/src/SSAFY/353円266円200円353円266円204円354円247円221円355円225円251円.java" +++ /dev/null @@ -1,41 +0,0 @@ -package SSAFY; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class 부분집합 { - private static int N; - private static int[] input; - private static boolean[] isSelected; - - private static void Powerset(int depth) { - if (depth == N) { - for (int i = 0 ; i < N; i++) { - System.out.print((isSelected[i] ? input[i] : "X") + "\t"); - } - System.out.println(); - return; - } - isSelected[depth] = true; - Powerset(depth + 1); - isSelected[depth] = false; - Powerset(depth + 1); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - N = Integer.parseInt(br.readLine()); - input = new int[N]; - isSelected = new boolean[N]; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i < N; i++) { - input[i] = Integer.parseInt(st.nextToken()); - } - - Powerset(0); - br.close(); - } -} diff --git "a/JAVA_2021/src/SSAFY/354円210円234円354円227円264円.java" "b/JAVA_2021/src/SSAFY/354円210円234円354円227円264円.java" deleted file mode 100644 index d52a076..0000000 --- "a/JAVA_2021/src/SSAFY/354円210円234円354円227円264円.java" +++ /dev/null @@ -1,48 +0,0 @@ -package SSAFY; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class 순열 { - private static int N; - private static int[] input, nums; - private static boolean[] isSelected; - - private static void Permutation(int depth, int flag) { - if (depth == N) { - System.out.println(Arrays.toString(nums)); - return; - } -// for (int i = 0 ; i < N; i++) { -// if (isSelected[i]) continue; -// nums[depth] = input[i]; -// isSelected[i] = true; -// Permutation(depth + 1); -// isSelected[i] = false; -// } - for (int i = 0 ; i < N; i++) { - if ((flag & 1 << i) != 0) continue; - nums[depth] = input[i]; - Permutation(depth+1, flag | 1< stack = new Stack(); - String line = br.readLine(); - String tmp = ""; - - for (int i = 0; i < N; i++) { // 중위연산자를 후위연산자로 바꿔줌 - if (line.charAt(i) != '+' && line.charAt(i) != '*') { - tmp += line.charAt(i); // 숫자는 tmp에 저장 - } else { - if (line.charAt(i) == '*') { - stack.push(line.charAt(i)); // 곱셈 연산자가 있으면 스택에 넣는다 - } else { - do { - if (stack.isEmpty()) break; - tmp += stack.pop(); // 곱셈 연산자를 tmp에 옮겨준다 - } while (!stack.isEmpty() && stack.peek() != '+'); // 스택이 비어있지않고, top이 숫자나 곱셈연산자일 경우에 계속 - stack.push(line.charAt(i)); // 덧셈 연산자를 스택에 넣는다. - } - } - } - - while (!stack.isEmpty()) tmp += stack.pop(); // 스택에 있는것을 전부 tmp에 넣는다. - - Stack op = new Stack(); // 숫자 연산을 위한 스택 - for (int i =0 ; i < tmp.length(); i++) { // 후위연산자로 만든것을 계산함 - if (tmp.charAt(i) != '+' && tmp.charAt(i) != '*') op.push(tmp.charAt(i) - '0'); // tmp에 숫자가 있으면 그것을 op에 푸쉬 - else { - int a = op.pop(); // 연산을 위한 숫자 두개 팝 - int b = op.pop(); - char cmd = tmp.charAt(i); // tmp에 남아있던 연산자를 꺼낸다. - - switch (cmd) { // 곱셈인지 덧셈인지 판단해서 연산후 op에 넣는다. - case '*': - int tmp1 = a * b; - op.push(tmp1); - break; - case '+': - int tmp2 = a + b; - op.push(tmp2); - break; - } - } - } - System.out.println("#" + tc + " " + op.peek()); - } - } -} diff --git a/JAVA_2021/src/SWEA/Baby_Gin.java b/JAVA_2021/src/SWEA/Baby_Gin.java deleted file mode 100644 index b2efe7a..0000000 --- a/JAVA_2021/src/SWEA/Baby_Gin.java +++ /dev/null @@ -1,53 +0,0 @@ -package SWEA; - -public class Baby_Gin { - private static int[] arr = {2, 3, 7, 7, 1, 7}; - private static boolean check; - - private static boolean is_Run(int start, int end) { - if (Math.abs(arr[start] - arr[start + 1]) == 1 && Math.abs(arr[start] - arr[start + 2]) == 2) { - return true; - } - return false; - } - - private static boolean is_Triplet (int start) { - if(arr[start] == arr[start + 1] && arr[start] == arr[start + 2]) { - return true; - } - return false; - } - - private static void swap(int idx1, int idx2) { - int tmp = arr[idx1]; - arr[idx1] = arr[idx2]; - arr[idx2] = tmp; - } - - private static void recursive(int cnt, int size) { - if(cnt == size && !check) { - if ((is_Run(0, 2) && is_Triplet(3)) || (is_Run(3, 5) && is_Triplet(0))) { - check = true; - for (int i = 0; i < 6; i++) { - System.out.print(arr[i] + " "); - } - System.out.println(); - } - } else { - for (int i = cnt; i < 6; i++) { - swap(cnt, i); - recursive(cnt + 1, size); - swap(cnt, i); - } - } - } - - private static boolean is_Babygin (int[] arr) { - recursive(0, arr.length); - return check; - } - - public static void main(String[] args) { - System.out.println(is_Babygin(arr)); - } -} diff --git a/JAVA_2021/src/SWEA/SWEA_1208.java b/JAVA_2021/src/SWEA/SWEA_1208.java deleted file mode 100644 index 77f4763..0000000 --- a/JAVA_2021/src/SWEA/SWEA_1208.java +++ /dev/null @@ -1,35 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class SWEA_1208 { - public static void main(String[] args) throws Exception{ - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - for (int tc = 1; tc < 11; tc++) { - - int Dump = Integer.parseInt(br.readLine()); - - int[] arr = new int[100]; - - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - for (int i = 0; i < 100; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - int cnt = 0; - while (true) { - if (Dump == cnt) break; - Arrays.sort(arr); - arr[99]--; - arr[0]++; - cnt++; - } - Arrays.sort(arr); - System.out.println("#" + tc + " " + (arr[99] - arr[0])); - }// tc end - } -} - - diff --git a/JAVA_2021/src/SWEA/SWEA_1289.java b/JAVA_2021/src/SWEA/SWEA_1289.java deleted file mode 100644 index 4f1a406..0000000 --- a/JAVA_2021/src/SWEA/SWEA_1289.java +++ /dev/null @@ -1,38 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class SWEA_1289 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 0; tc < T; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - char[] input = st.nextToken().toCharArray(); - char[] mem = new char[input.length]; - - int ans = 0; - - for (int i = 0 ; i < input.length; i++) { // 초기화 상태 - mem[i] = '0'; - } - - for (int i = 0 ; i < input.length; i++) { // 받은 값의 길이로 돌면서 - if (input[i] != mem[i]) { // 복구하고자 하는 값과 0으로 초기화된 값이 다르면 - char tmpN = input[i]; // tmpN에 그 값을 임시로 저장 - - for (int j = i; j < input.length; j++) { - mem[j] = tmpN; // 메모리에 그 값을 덮어 씌운다 - } - ans++; // 카운트 + 1 - } - } - System.out.println("#" + (tc+1) + " " + ans); - } - } -} - diff --git a/JAVA_2021/src/SWEA/SWEA_1660.java b/JAVA_2021/src/SWEA/SWEA_1660.java deleted file mode 100644 index 2459851..0000000 --- a/JAVA_2021/src/SWEA/SWEA_1660.java +++ /dev/null @@ -1,45 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.StringTokenizer; - -public class SWEA_1660 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int N = Integer.parseInt(st.nextToken()); - int M = Integer.parseInt(st.nextToken()); - int K = Integer.parseInt(st.nextToken()); - - ArrayList arr = new ArrayList(); - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - int tmp = Integer.parseInt(st.nextToken()); - arr.add(tmp); - } - - Collections.sort(arr); - boolean flag = false; - for(int i = 0; i < N; i++) { - int tmp = arr.get(i); - int sum = K * (tmp / M); - if(sum < (i + 1)) - flag = true; - } - - if (flag) { - System.out.println("#" + tc + " " + "Impossible"); - } else { - System.out.println("#" + tc + " " + "Possible"); - } - } - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/SWEA_1859.java b/JAVA_2021/src/SWEA/SWEA_1859.java deleted file mode 100644 index 2cb4553..0000000 --- a/JAVA_2021/src/SWEA/SWEA_1859.java +++ /dev/null @@ -1,37 +0,0 @@ -package SWEA; - -import java.io.*; -import java.util.StringTokenizer; - -public class SWEA_1859 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - int N = Integer.parseInt(br.readLine()); - int[] dayPrice = new int[N]; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - dayPrice[N - i- 1] = Integer.parseInt(st.nextToken()); - } - - long ans = 0; - long now_Max = dayPrice[0]; - - for (int i = 1; i < N; i ++) { - if (now_Max> dayPrice[i]) { - ans += now_Max - dayPrice[i]; - } else { - now_Max = dayPrice[i]; - } - } - bw.write("#" + tc + " " + ans + "\n"); - } - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/SWEA/SWEA_1954.java b/JAVA_2021/src/SWEA/SWEA_1954.java deleted file mode 100644 index fdff383..0000000 --- a/JAVA_2021/src/SWEA/SWEA_1954.java +++ /dev/null @@ -1,71 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class SWEA_1954 { - private static int[] dx = {0, 1, 0, -1}; - private static int[] dy = {1, 0, -1, 0}; - - private static int N; - private static int[][] graph; - - public static int[][] snail() { - graph = new int[N][N]; - Pair p = new Pair(0, 0); - int val = 1; - int dir = 0; - - while (true) { - graph[p.x][p.y] = val++; - if (val> N * N) break; - - int nx = p.x + dx[dir]; - int ny = p.y + dy[dir]; - - if (nx < 0 || nx>= N || ny < 0 || ny>= N) { - dir = (dir + 1) % 4; - nx = p.x + dx[dir]; - ny = p.y + dy[dir]; - } - - if (graph[nx][ny] != 0) { - dir = (dir + 1) % 4; - nx = p.x + dx[dir]; - ny = p.y + dy[dir]; - } - - p.x = nx; - p.y = ny; - } - return graph; - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc < T + 1; tc++) { - N = Integer.parseInt(br.readLine()); - snail(); - System.out.println("#" + tc); - - for (int x = 0; x < N; x++) { - for (int y = 0; y < N; y++) { - System.out.print(graph[x][y] + " "); - } - System.out.println(); - } - } - } -} - -class Pair { - int x, y; - Pair(int x, int y) { - this.x = x; - this.y = y; - } -} \ No newline at end of file diff --git a/JAVA_2021/src/SWEA/SWEA_2027.java b/JAVA_2021/src/SWEA/SWEA_2027.java deleted file mode 100644 index 774da9a..0000000 --- a/JAVA_2021/src/SWEA/SWEA_2027.java +++ /dev/null @@ -1,16 +0,0 @@ -package SWEA; - -public class SWEA_2027 { - public static void main(String[] args) { - for (int i = 0; i < 5; i++) { - for (int j = 0; j < 5; j++) { - if (i == j) { - System.out.print("#"); - } else { - System.out.print("+"); - } - } - System.out.println(); - } - } -} diff --git a/JAVA_2021/src/SWEA/SWEA_9229.java b/JAVA_2021/src/SWEA/SWEA_9229.java deleted file mode 100644 index c78336e..0000000 --- a/JAVA_2021/src/SWEA/SWEA_9229.java +++ /dev/null @@ -1,40 +0,0 @@ -package SWEA; - -import java.io.*; -import java.util.StringTokenizer; - -public class SWEA_9229 { - private static int N, M; - private static int[] arr; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc < T+1; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - arr = new int[N]; - - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - int ans = -1; - for (int i = 0; i < N; i++) { - for (int j = i + 1; j < N; j++) { - if (arr[i] + arr[j] <= M) { - ans = Math.max(ans, arr[i] + arr[j]); - } - } - } - bw.write("#" + tc + " " + ans + "\n"); - } - br.close(); - bw.flush(); - bw.close(); - } -} \ No newline at end of file diff --git a/JAVA_2021/src/SWEA/Solution_1208.java b/JAVA_2021/src/SWEA/Solution_1208.java deleted file mode 100644 index fe98c2a..0000000 --- a/JAVA_2021/src/SWEA/Solution_1208.java +++ /dev/null @@ -1,38 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class Solution_1208 { - private static int[] ans = new int[10]; - - public static void main(String[] args) throws Exception { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - for (int tc = 0; tc < 10; tc++) { - int[] arr = new int[100]; - int N = Integer.parseInt(br.readLine()); - - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - for (int i = 0; i < 100; i++){ - arr[i] = Integer.parseInt(st.nextToken()); // 상자값 입력 - } - - - Arrays.sort(arr); - for (int i = 0; i < N; i++) { - arr[0]++; - arr[99]--; - Arrays.sort(arr); - } - ans[tc] = arr[99] - arr[0]; - - } - - for (int i = 0; i < 10; i++) { - System.out.println("#" + (i + 1) + " " + ans[i]); - } - - }// main -}// class-end \ No newline at end of file diff --git a/JAVA_2021/src/SWEA/Solution_1210.java b/JAVA_2021/src/SWEA/Solution_1210.java deleted file mode 100644 index aff7c07..0000000 --- a/JAVA_2021/src/SWEA/Solution_1210.java +++ /dev/null @@ -1,75 +0,0 @@ -package SWEA; - -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.BufferedReader; -import java.util.Queue; -import java.util.LinkedList; - -public class Solution_1210 { - private static int[][] graph; - private static int[] dx = {0, 0, -1}; - private static int[] dy = {-1, 1, 0}; - - private static class Pair { - int x; - int y; - - Pair(int x, int y) { - this.x = x; - this.y = y; - } - } - - public static void main(String args[]) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - for(int tc = 1; tc <= 10; tc++) { - int T = Integer.parseInt(br.readLine()); - graph = new int[100][100]; - Pair c = null; - - for(int i=0; i<100; i++) { - String[] input = br.readLine().split(" "); - - for(int j=0; j<100; j++) { - graph[i][j] = Integer.parseInt(input[j]); - - if(graph[i][j]==2) - c = new Pair(i, j); - } - } - bfs(T, c); - } - } - - public static void bfs(int T, Pair end) { - Queue queue = new LinkedList(); - boolean[][] visited = new boolean[100][100]; - - visited[end.x][end.y] = true; - queue.add(new Pair(end.x, end.y)); - - while(!queue.isEmpty()) { - Pair tmp = queue.poll(); - - if(tmp.x==0) { - System.out.println("#"+T+" "+tmp.y); - break; - } - - for(int i=0; i<3; i++) { - int nx = tmp.x+dx[i]; - int ny = tmp.y+dy[i]; - - if(nx<0 || nx>=100 || ny<0 || ny>=100 || graph[nx][ny]==0 || visited[nx][ny]) continue; - - visited[nx][ny] = true; - - queue.add(new Pair(nx, ny)); - - break; - } - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/SWEA/Solution_1218.java b/JAVA_2021/src/SWEA/Solution_1218.java deleted file mode 100644 index d7af14b..0000000 --- a/JAVA_2021/src/SWEA/Solution_1218.java +++ /dev/null @@ -1,35 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; - -public class Solution_1218 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - for (int tc = 1; tc < 11; tc++) { - int N = Integer.parseInt(br.readLine()); - String str = br.readLine(); - Stack stack = new Stack(); - int ans = 0; - - for (int i = 0; i < str.length(); i++) { - char c = str.charAt(i); - - if (c == ')' && stack.peek() == '(') stack.pop(); - else if (c == ']' && stack.peek() == '[') stack.pop(); - else if (c == '>' && stack.peek() == '<') stack.pop(); - else if (c == '}' && stack.peek() == '{') stack.pop(); - else { - stack.push(c); - } - } - if (stack.isEmpty()) ans = 1; - else ans = 0; - - System.out.println("#" + tc + " " + ans); - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1223.java b/JAVA_2021/src/SWEA/Solution_1223.java deleted file mode 100644 index 1d85883..0000000 --- a/JAVA_2021/src/SWEA/Solution_1223.java +++ /dev/null @@ -1,59 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; - -public class Solution_1223 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - for (int tc = 0; tc <= 10; tc++) { - - int N = Integer.parseInt(br.readLine()); - Stack op_store = new Stack(); - String line = br.readLine(); - String postFix = ""; - - for (int i = 0; i < N; i++) { - if (line.charAt(i) != '+' && line.charAt(i) != '*') { - postFix += line.charAt(i); - } else { - if (line.charAt(i) == '*') { - op_store.push(line.charAt(i)); - } else { - do { - if (op_store.isEmpty()) break; - postFix += op_store.pop(); - } while (!op_store.isEmpty() && op_store.peek() != '+'); - op_store.push(line.charAt(i)); - } - } - } - - while (!op_store.isEmpty()) postFix += op_store.pop(); - - Stack op = new Stack(); - for (int i =0; i < postFix.length(); i++) { - if (postFix.charAt(i) != '+' && postFix.charAt(i) != '*') { - op.push(postFix.charAt(i) - '0'); - } else { - int op1 = op.pop(); - int op2 = op.pop(); - char operator = postFix.charAt(i); - switch (operator) { - case '*': - int tmp1 = op1 * op2; - op.push(tmp1); - break; - case '+': - int tmp2 = op1 + op2; - op.push(tmp2); - break; - } - } - } - System.out.println("#" + tc + 1 + " " + op.peek()); - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1225.java b/JAVA_2021/src/SWEA/Solution_1225.java deleted file mode 100644 index 6cc945b..0000000 --- a/JAVA_2021/src/SWEA/Solution_1225.java +++ /dev/null @@ -1,42 +0,0 @@ -package SWEA; - -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 Solution_1225 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - for (int tc = 1; tc <= 10; tc++) { - int N = Integer.parseInt(br.readLine()); - - Queue arr = new LinkedList(); - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0; i < 8; i++) { - arr.offer(Integer.parseInt(st.nextToken())); - } - - outer: - while (true) { - for (int i = 1; i <= 5; i++) { - int front = arr.poll(); - front -= i; - if (front < 1) front = 0; - arr.offer(front); - if (front == 0) break outer; - } - } - - System.out.print("#" + N + " "); - while (!arr.isEmpty()) { - System.out.print(arr.poll() + " "); - } - System.out.println(); - } - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1228.java b/JAVA_2021/src/SWEA/Solution_1228.java deleted file mode 100644 index b415bd0..0000000 --- a/JAVA_2021/src/SWEA/Solution_1228.java +++ /dev/null @@ -1,45 +0,0 @@ -package SWEA; - -import java.io.*; -import java.util.ArrayList; -import java.util.StringTokenizer; - -public class Solution_1228 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - for (int tc = 1; tc < 11; tc++) { - int n = Integer.parseInt(br.readLine()); - ArrayList list = new ArrayList(); - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0; i < n; i++) { - list.add(Integer.parseInt(st.nextToken())); - } - - int k = Integer.parseInt(br.readLine()); - int cnt = 0; - st = new StringTokenizer(br.readLine()); - for (int i = 0; i < k; i++) { - String trash = st.nextToken(); - int x = Integer.parseInt(st.nextToken()); - int y = Integer.parseInt(st.nextToken()); - - for (int j = 0 ; j < y; j++) { - list.add(x, Integer.parseInt(st.nextToken())); - x++; - } - cnt++; - } - bw.write("#" + tc + " "); - for (int i =0 ; i < 10; i++) { - bw.write(list.get(i) + " "); - } - bw.write("\n"); - } - bw.flush(); - bw.close(); - br.close(); - } - -} diff --git a/JAVA_2021/src/SWEA/Solution_1233.java b/JAVA_2021/src/SWEA/Solution_1233.java deleted file mode 100644 index b185ad8..0000000 --- a/JAVA_2021/src/SWEA/Solution_1233.java +++ /dev/null @@ -1,51 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solution_1233 { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - for (int tc = 1; tc <= 10; tc++) { - int Size = Integer.parseInt(br.readLine()); - inOrder[] v = new inOrder[Size + 1]; - - for (int i = 0; i <= Size; i++) v[i] = new inOrder(); - for (int i = 1; i <= Size; i++) { - String s = br.readLine(); - int len = s.split(" ").length; - - v[i].num = Integer.parseInt(s.split(" ")[0]); // 안쓰는 데이터 - v[i].op = s.split(" ")[1]; - if (len == 4) { - v[i].lNode = Integer.parseInt(s.split(" ")[2]); // 이 문제에서는 안씀 - v[i].rNode = Integer.parseInt(s.split(" ")[3]); // 자식노드를 이용하는 문제 아니기에 - } else if (len == 3) { - v[i].lNode = Integer.parseInt(s.split(" ")[2]); - } - } - - boolean flag = true; - for (int i = 1; i<= Size; i++) { - if ((v[i].lNode == -1) || v[i].rNode == -1) { - if ((v[i].op).equals("+") || (v[i].op).equals("-") || (v[i].op).equals("*") || (v[i].op).equals("/")) { - flag = false; - System.out.println("#" + tc + " 0"); - break; - } - } - } - if(flag) System.out.println("#" + tc + " 1"); - } - } -} - -class inOrder { - int num; - String op; - int lNode = -1; - int rNode = -1; -} diff --git a/JAVA_2021/src/SWEA/Solution_1238.java b/JAVA_2021/src/SWEA/Solution_1238.java deleted file mode 100644 index cbf0dc1..0000000 --- a/JAVA_2021/src/SWEA/Solution_1238.java +++ /dev/null @@ -1,87 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.*; - -public class Solution_1238 { - private static LinkedList[] list; - - private static int bfs(int start) { - int lastCNT = -123456789; - int lastNode = -123456789; - boolean[] visited = new boolean[101]; - - Queue queue = new LinkedList(); - queue.offer(new Node(start, 0)); - visited[start] = true; - - while (!queue.isEmpty()) { - Node q = queue.poll(); - int now = q.now; - int nowCNT = q.cnt; - - if (lastCNT == nowCNT && lastNode <= now) { - lastNode = now; - } else if (lastCNT < nowCNT) { - lastCNT = nowCNT; - lastNode = now; - } - - for (int i = 0 ; i < list[now].size(); i++) { - int next = list[now].get(i); - if (!visited[next]) { - visited[next] = true; - queue.offer(new Node(next, nowCNT + 1)); - } - } - } - return lastNode; - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - - for (int tc =1; tc <= 10; tc++) { - String[] line = br.readLine().split(" "); - int n = Integer.parseInt(line[0]); - int startNode = Integer.parseInt(line[1]); - - list = new LinkedList[101]; - Set set = new HashSet(); - - for (int i = 0 ; i < 101; i++) { - list[i] = new LinkedList(); - } - - StringTokenizer st = new StringTokenizer(br.readLine()); - while (st.hasMoreTokens()) { - int from = Integer.parseInt(st.nextToken()); - int to = Integer.parseInt(st.nextToken()); - String token = from + " " + to; - set.add(token); - } - - for (String e: set) { - String[] tmp = e.split(" "); - list[Integer.parseInt(tmp[0])].add(Integer.parseInt(tmp[1])); - } - - sb.append("#").append(tc).append(" ").append(bfs(startNode)).append("\n"); - } - System.out.print(sb.toString()); - br.close(); - } - - private static class Node{ - int now, cnt; - - public Node(int now, int cnt) { - this.now = now; - this.cnt = cnt; - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1238_2.java b/JAVA_2021/src/SWEA/Solution_1238_2.java deleted file mode 100644 index 1295240..0000000 --- a/JAVA_2021/src/SWEA/Solution_1238_2.java +++ /dev/null @@ -1,82 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.*; - -class Solution_1238_2 { - private static LinkedList[] list; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - for(int t = 1; t <= 10; t++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - Set set = new HashSet(); - - int n = Integer.parseInt(st.nextToken()); - int start = Integer.parseInt(st.nextToken()); - - list = new LinkedList[101]; - - for (int i = 0; i < 101; i++) list[i] = new LinkedList(); - - st = new StringTokenizer(br.readLine()); - while (st.hasMoreTokens()) { - int from = Integer.parseInt(st.nextToken()); - int to = Integer.parseInt(st.nextToken()); - String token = from + " " + to; - if (!set.contains(token)) set.add(token); - } - - for (String e : set) { - String[] tmp = e.split(" "); - list[Integer.parseInt(tmp[0])].add(Integer.parseInt(tmp[1])); - } - - System.out.printf("#%d %d\n", t, bfs(start)); - } - } - - private static int bfs(int start) { - int lastTime = -1; - int lastTimeNode = -1; - boolean[] visit = new boolean[101]; - - Queue queue = new LinkedList(); - queue.offer(new Node(start, 0)); - visit[start] = true; - - while(!queue.isEmpty()) { - int now = queue.peek().now; - int nowTime = queue.peek().cost; - queue.poll(); - - if(lastTime == nowTime && lastTimeNode < now) lastTimeNode = now; - else if(lastTime < nowTime) { - lastTime = nowTime; - lastTimeNode = now; - } - - for(int i = 0 ; i < list[now].size(); i++) { - int next = list[now].get(i); - if(!visit[next]) { - visit[next] = true; - queue.offer(new Node(next, nowTime + 1)); - } - } - } - - return lastTimeNode; - } - - private static class Node { - int now, cost; - - public Node(int now, int cost) { - this.now = now; - this.cost = cost; - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/SWEA/Solution_1247.java b/JAVA_2021/src/SWEA/Solution_1247.java deleted file mode 100644 index d95a593..0000000 --- a/JAVA_2021/src/SWEA/Solution_1247.java +++ /dev/null @@ -1,64 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_1247 { - private static int T, N, ans; - private static boolean[] visited; - private static Point home, company, customer[]; - - private static void Permutation(int depth, Point p, int dist) { - if (depth == N) { - dist += Math.abs(p.x - home.x) + Math.abs(p.y - home.y); - ans = Math.min(ans, dist); - } - if (dist>= ans) return; - - for (int i = 0; i < N; i++) { - if(!visited[i]) { - visited[i] = true; - Permutation(depth + 1, customer[i], dist + Math.abs(p.x - customer[i].x) + Math.abs(p.y - customer[i].y)); - visited[i] = false; - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - N = Integer.parseInt(br.readLine()); - StringTokenizer st = new StringTokenizer(br.readLine(), " "); - - home = new Point(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())); - company = new Point(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())); - customer = new Point[N]; - for (int i = 0; i < N; i++) { - customer[i] = new Point(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())); - } - - visited = new boolean[N]; - ans = 123456789; - - Permutation(0, company, 0); - - System.out.println("#" + tc + " " + ans); - - } - br.close(); - } - - static class Point { - int x, y; - - public Point(int x, int y) { - this.x = x; - this.y = y; - } - } -} - diff --git a/JAVA_2021/src/SWEA/Solution_1251.java b/JAVA_2021/src/SWEA/Solution_1251.java deleted file mode 100644 index 104acaa..0000000 --- a/JAVA_2021/src/SWEA/Solution_1251.java +++ /dev/null @@ -1,101 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; - -public class Solution_1251 { - private static int N; - private static double E; - private static int[] parent; - private static Node[] island; - - private static int find(int x) { - if (parent[x] == x) return x; - return parent[x] = find(parent[x]); - } - - private static void union(int x, int y) { - x = find(x); - y = find(y); - if (x != y) parent[y] = x; - } - - private static double calc(long x, long y, long dx, long dy) { - return E * Math.pow(Math.sqrt(Math.pow(dx - x, 2) + Math.pow(dy - y, 2 )), 2); - } // E * L ^ 2 - - private static boolean isSameParent(int x, int y) { - x = find(x); - y = find(y); - if (x != y) return false; - return true; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - for (int tc = 1; tc <= T; tc++) { - N = Integer.parseInt(br.readLine()); - - island = new Node[N]; - String[] tmp = br.readLine().split(" "); - for (int i = 0 ; i < N; i++) { // x좌표 - island[i] = new Node(Integer.parseInt(tmp[i]), 0, 0); - } - tmp = br.readLine().split(" "); - for (int i = 0 ; i < N; i++) { // y좌표 - island[i].y = Integer.parseInt(tmp[i]); - } - E = Double.parseDouble(br.readLine()); // 환경 부담 세율 - - ArrayList weights = new ArrayList(); - for (int i = 0 ; i < N - 1; i++) { // 모든 점들과 각각의 weight 구하기 - for (int j = i + 1; j < N; j++) { - weights.add(new Node(i, j, calc(island[i].x, island[i].y, island[j].x, island[j].y))); - } - } - - Collections.sort(weights, new Comparator() { // 크루스칼 알고리즘을 위해 weight 기준으로 정렬 - @Override - public int compare(Node o1, Node o2) { - if (o1.weight < o2.weight) { - return -1; - } else if (o1.weight> o2.weight) { - return 1; - } - return 0; - } - }); - - parent = new int[N]; // 유니온 파인드를 쓰기 위해 parent 배열 초기화 - for (int i = 0 ; i < N; i++) { - parent[i] = i; - } - - double ans = 0.0; - for (int i = 0; i < weights.size(); i++) { - if (!isSameParent(weights.get(i).x, weights.get(i).y)) { // 같은 부모인지 확인, 부모가 같지않다면 연결되어 있지 않으므로 union 필요 - union(weights.get(i).x, weights.get(i).y); // union - ans = ans + weights.get(i).weight; // weight - } - } - System.out.format("#%d %.0f\n", tc, ans); - } // tc end - br.close(); - } // psvm end - - private static class Node{ - int x, y; - double weight; - - public Node(int x, int y, double weight) { - this.x = x; - this.y = y; - this.weight = weight; - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1251_2.java b/JAVA_2021/src/SWEA/Solution_1251_2.java deleted file mode 100644 index 28b2918..0000000 --- a/JAVA_2021/src/SWEA/Solution_1251_2.java +++ /dev/null @@ -1,90 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class Solution_1251_2 { - - private static int N; - private static double E; - private static long[][] graph; - private static StringTokenizer st; - private static BufferedReader br; - - - private static void Solution() throws IOException { - br = new BufferedReader(new InputStreamReader(System.in)); - int TC = Integer.parseInt(br.readLine()); - - for (int t = 1; t <= TC; t++) { - N = Integer.parseInt(br.readLine()); - - int x[] = new int[N]; - st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i < N; i++) { - x[i] = Integer.parseInt(st.nextToken()); - } - - int y[] = new int[N]; - st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i < N; i++) { - y[i] = Integer.parseInt(st.nextToken()); - } - - for (int i = 0 ; i < N; i++) { - for (int j = 0 ; j < N; j++) { - graph[i][j] = graph[j][i] = getDist(x[i], x[j], y[i], y[j]); - } - } - E = Double.parseDouble(br.readLine()); - System.out.println("#" + t + " " + makeMST()); - } - } - - private static long makeMST() { - long[] minEdge = new long[N]; - boolean[] visited = new boolean[N]; - - Arrays.fill(minEdge, Integer.MAX_VALUE); - minEdge[0] = 0; - long result = 0; // 최소 신장트리 비용 - int cnt = 0; // 정점 갯수 - - while (true) { - // 신장 트리의 포함되지 않은 정점 중 최소 간선비용의 정점선택 - long min = Integer.MAX_VALUE; - int minNo = 0; - for (int i = 0 ; i < N; i++) { - if (!visited[i] && min> minEdge[i]) { - minNo = i; - min = minEdge[i]; - } - } - visited[minNo] = true; // 정점이 신장트리에 포함됨 - result += min; // 비용에도 가중치 + - - if (++cnt == N) break; // cnt도 누적되다 N개에 도달하면 while 빠져나옴 - - for (int i = 0; i < N; i++) { - if (!visited[i] && minEdge[i]> graph[minNo][i]) { - minEdge[i] = graph[minNo][i]; - } - } // 전체중 최소를 구하려면 하나씩 하나씩 비교해서 최솟값을 구해야 한다. - } - return result; - } - - - private static long getDist(int x1, int x2, int y1, int y2) { - return (long) Math.pow(x1 - x2, 2) + (long) Math.pow(y1 - y2, 2); - } - - public static void main(String[] args) throws IOException{ - - Solution(); - } - -} diff --git a/JAVA_2021/src/SWEA/Solution_1486.java b/JAVA_2021/src/SWEA/Solution_1486.java deleted file mode 100644 index 765e322..0000000 --- a/JAVA_2021/src/SWEA/Solution_1486.java +++ /dev/null @@ -1,45 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_1486 { - private static int N, B, min_height; - private static int[] arr; - - private static void solution(int idx, int height) { // 부분집합 - if (B <= height && height < min_height) { - min_height = height; - } - if (idx == N) return; - solution(idx + 1, height); - solution(idx + 1, height + arr[idx]); - - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - String[] line = br.readLine().split(" "); - N = Integer.parseInt(line[0]); - B = Integer.parseInt(line[1]); - min_height = 123456789; - - arr = new int[N]; - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - solution(0, 0); - sb.append("#").append(tc).append(" ").append(min_height - B).append("\n"); - } - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1767.java b/JAVA_2021/src/SWEA/Solution_1767.java deleted file mode 100644 index 3cd5def..0000000 --- a/JAVA_2021/src/SWEA/Solution_1767.java +++ /dev/null @@ -1,109 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.StringTokenizer; - -public class Solution_1767 { - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - private static int N, maxCore, coreNum, ans; - private static int[][] graph; - private static ArrayList arr; - - // 길이 체크 - private static int wireChk (int x, int y, int i) { - int len = 0; - while (true) { - x += dx[i]; - y += dy[i]; - - if (0> x || x>= N || 0> y || x>= N) { - return len; - } else if (graph[x][y] != 0) { - return 0; - } - len++; - } - } - - // dfs 한방향으로만 가야되 - private static void dfs(int idx, int cnt, int len) { - if (idx == coreNum) return; - if (maxCore> cnt + (coreNum - idx)) return; - - if (cnt> maxCore) { - ans = len; - maxCore = cnt; - } else if (cnt == maxCore) { - ans = Math.min(ans, len); - } - - Pair p = arr.get(idx); - int x = p.x; - int y = p.y; - - for (int i = 0; i < 4; i++) { - - int wireLen = wireChk(x, y, i); - if (wireLen> 0) { - makeSet(x, y, i, 2); - dfs(i + 1, cnt + 1, len + wireLen); - makeSet(x, y, i, 0); - } - } - - } - - private static void makeSet (int x, int y, int i, int val) { - while (true) { - x += dx[i]; - y += dy[i]; - if (x < 0 || x>= N || y < 0 || y>= N) return; - graph[x][y] = val; - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - N = Integer.parseInt(br.readLine()); - graph = new int[N][N]; // 0 ~ 4 까지 가는 5X5 배열 생성 - arr = new ArrayList(); - coreNum = 0; - maxCore = 0; - - for (int i = 0 ; i< N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0 ;j < N ; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - - if (i == 0 || j == 0 || i == N - 1 || j == N - 1) { // 가장자리 스킵 - continue; - } else if (graph[i][j] == 1) { // 코어가 몇 개인지 새주기 와 값 넣어 주기 - arr.add(new Pair(i, j)); - coreNum++; - } - } - } // 입력 for 끝 - - dfs(0, 0, 0); - System.out.println("#" + tc + " " + ans); - } // tc 루프 끝 - br.close(); - } - - static class Pair { - int x, y; - - public Pair(int x, int y) { - this.x = x; - this.y = y; - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1861.java b/JAVA_2021/src/SWEA/Solution_1861.java deleted file mode 100644 index 368aec2..0000000 --- a/JAVA_2021/src/SWEA/Solution_1861.java +++ /dev/null @@ -1,63 +0,0 @@ -package SWEA; - -import java.io.*; -import java.util.StringTokenizer; - -public class Solution_1861 { - private static int[][] graph; - private static int N, idx, ans; - private static int[] dx = {-1, 0, 1, 0}; - private static int[] dy = {0, 1, 0, -1}; - - private static void dfs(int x, int y, int cnt, int start) { - for(int i = 0; i < 4; i++) { - int nx = x + dx[i]; - int ny = y + dy[i]; - - if (0 <= nx && nx < N && 0 <= ny && ny < N) { - if ((graph[nx][ny] == graph[x][y] + 1)) { - dfs(nx, ny, cnt + 1, start); - } - } - } - - if(cnt> ans) { // 카운트 한 것이 기존의 값보다 많다면 - ans = cnt; // 업데이트 - idx = start; // 카운트 시작한 방번호도 업데이트 - } - if(cnt == ans) { // 만약 방 갯수가 기존의 것과 같다면 - idx = Math.min(idx, start); // 방번호가 작은 쪽으로 업데이트 - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc < T + 1; tc++) { - N = Integer.parseInt(br.readLine()); - - graph = new int[N][N]; - idx = 0; - ans = 0; - - for (int i = 0; i < N; i++) { - StringTokenizer st =new StringTokenizer(br.readLine()); - for (int j =0; j < N; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - dfs(i, j, 1, graph[i][j]); - } - } - bw.write("#" + tc + " " + idx + " " + ans + "\n"); - } - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1868.java b/JAVA_2021/src/SWEA/Solution_1868.java deleted file mode 100644 index 0cd97f6..0000000 --- a/JAVA_2021/src/SWEA/Solution_1868.java +++ /dev/null @@ -1,84 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solution_1868 { // 파핑파핑 지뢰찾기 - private static char[][] graph; - private static int[][] mineCNT; - private static int[] dx = {-1, 1, 0, 0, 1, 1, -1, -1}; // 8방 - private static int[] dy = {0, 0, -1, 1, 1, -1, 1, -1}; - private static int N, ans; - - private static void click(int i, int j) { - int current = mineCNT[i][j]; - mineCNT[i][j] = -1; - - if (current == 0) { - for (int d = 0; d < 8; d++) { - int nx = i + dx[d]; - int ny = j + dy[d]; - if (0 <= nx && nx < N && 0 <= ny && ny < N) { - if (graph[nx][ny] != '*' && mineCNT[nx][ny] != -1) { - click(nx, ny); - } - } - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - StringBuilder sb = new StringBuilder(); - - for (int tc = 1; tc <= T; tc ++){ - N = Integer.parseInt(br.readLine()); - graph = new char[N][N]; - ans = 0; - mineCNT = new int[N][N]; - for (int i = 0 ; i < N; i++) { - graph[i] = br.readLine().toCharArray(); - } // 그래프 입력 - - for (int i = 0 ; i < N; i++) { - for (int j = 0 ; j < N; j++) { - if (graph[i][j] == '.') { - int cnt = 0; - for (int d= 0; d < 8; d++) { - int nx = i + dx[d]; - int ny = j + dy[d]; - if (0 <= nx && nx < N && 0 <= ny && ny < N) { - if (graph[nx][ny] == '*') { - cnt++; - } - } - } - mineCNT[i][j] = cnt; - } - } - } // 맵에 지뢰 갯수 세기 - - for (int i = 0 ; i < N; i++) { - for (int j = 0 ; j < N ;j ++) { - if (mineCNT[i][j] == 0 && graph[i][j] != '*') { - click(i, j); - ans++; - } - } - } - - for (int i = 0 ; i < N; i++) { - for (int j = 0 ;j < N ; j++) { - if (mineCNT[i][j]> 0 && graph[i][j] != '*') { - ans++; - } - } - } - sb.append("#").append(tc).append(" ").append(ans).append("\n"); - } // tc end - System.out.print(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1873.java b/JAVA_2021/src/SWEA/Solution_1873.java deleted file mode 100644 index 548ee24..0000000 --- a/JAVA_2021/src/SWEA/Solution_1873.java +++ /dev/null @@ -1,148 +0,0 @@ -package SWEA; - -import java.io.*; - -public class Solution_1873 { - private static char[][] graph; - private static int H, W, x, y, dir; - private static int[] dx = {-1, 1, 0, 0}; // U D L R - private static int[] dy = {0, 0, -1, 1}; - - private static boolean check(int x, int y) { - if (x < 0 || x>= H || y < 0 || y>= W) return false; - return true; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - String[] a = br.readLine().split(" "); - H = Integer.parseInt(a[0]); - W = Integer.parseInt(a[1]); - - graph = new char[H][W]; - - for (int i = 0; i < H; ++i) { // 그래프에 데이터 입력 - graph[i] = br.readLine().toCharArray(); - } - - x = -12345; - y = -12345; - dir = -12345; - - for (int i = 0; i < H; ++i) { // 그래프에서 탱크 위치, 바라보고 있는 방향 찾기 - for (int j = 0; j < W; ++j) { - char tank = graph[i][j]; - if (tank == '^') { - x = i; y = j; dir = 0; - break; - } else if (tank == 'v') { - x = i; y = j; dir = 1; - break; - } else if (tank == '<') { - x = i; y = j; dir = 2; - break; - } else if (tank == '>') { - x = i; y = j; dir = 3; - break; - } - } - } - - graph[x][y] = '.'; // 탱크가 있는 현재 자리도 평지 - - int N = Integer.parseInt(br.readLine()); - char[] cmd = br.readLine().toCharArray(); - - for (int i = 0 ; i < N; ++i) { - char command = cmd[i]; - switch (command) { - case 'S': - int target_X = x; - int target_Y = y; - - while (true) { - target_X += dx[dir]; - target_Y += dy[dir]; - - if (!check(target_X, target_Y)) break; - - char tmp = graph[target_X][target_Y]; - if (tmp == '#') break; // 강철벽은 못 깸 - if (tmp == '*') { // 벽돌벽이면 - graph[target_X][target_Y] = '.'; // 평지가 됨 - break; - } - } - break; - - case 'U': - dir = 0; - int nX1 = x + dx[dir]; // 커맨드가 위일경우 탱크의 위쪽 좌표로 nX1, nY1 지정 - int nY1 = y + dy[dir]; - - if (!check(nX1, nY1)) break; // 맵 밖이면 아무것도 안함 - if (graph[nX1][nY1] == '.') { // 탱크 위의 위치가 평지면 - x += dx[dir]; // 탱크 이동 - y += dy[dir]; - } - break; - - case 'D': - dir = 1; - int nX2 = x + dx[dir]; - int nY2 = y + dy[dir]; - - if (!check(nX2, nY2)) break; - if (graph[nX2][nY2] == '.') { - x += dx[dir]; - y += dy[dir]; - } - break; - - case 'L': - dir = 2; - int nX3 = x + dx[dir]; - int nY3 = y + dy[dir]; - - if (!check(nX3, nY3)) break; - if (graph[nX3][nY3] == '.') { - x += dx[dir]; - y += dy[dir]; - } - break; - - case 'R': - dir = 3; - int nX4 = x + dx[dir]; - int nY4 = y + dy[dir]; - - if (!check(nX4, nY4)) break; - if (graph[nX4][nY4] == '.') { - x += dx[dir]; - y += dy[dir]; - } - break; - } // switch-case end - } // command for end - - switch (dir) { // 탱크 머리 돌리기 - case 0: graph[x][y] = '^'; break; - case 1: graph[x][y] = 'v'; break; - case 2: graph[x][y] = '<'; break; - case 3: graph[x][y] = '>'; break; - } - - System.out.print("#" + tc + " "); - for (int i = 0 ; i < H; i++) { - for (int j = 0; j < W; j++) { - System.out.print(graph[i][j]); - } - System.out.println(); - } - } // tc end - br.close(); - } // psvm end -} // class end diff --git a/JAVA_2021/src/SWEA/Solution_1940.java b/JAVA_2021/src/SWEA/Solution_1940.java deleted file mode 100644 index 7adb9fa..0000000 --- a/JAVA_2021/src/SWEA/Solution_1940.java +++ /dev/null @@ -1,47 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_1940 { - private static int status; - private static int accel; - private static int distance; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int T = Integer.parseInt(br.readLine()); - for (int tc = 1; tc <= T; tc++) { - int N = Integer.parseInt(br.readLine()); - distance = 0; - accel = 0; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - status = Integer.parseInt(st.nextToken()); - - switch (status) { - case 1: - int a = Integer.parseInt(st.nextToken()); - accel += a; - distance += accel; - break; - case 2: - int b = Integer.parseInt(st.nextToken()); - accel -= b; - if (accel < 0) accel =0; - distance += accel; - break; - case 0: - distance += accel; - break; - } - } - System.out.println("#" + tc + " " + distance); - } - - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1949.java b/JAVA_2021/src/SWEA/Solution_1949.java deleted file mode 100644 index d3f4b22..0000000 --- a/JAVA_2021/src/SWEA/Solution_1949.java +++ /dev/null @@ -1,84 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_1949 { - private static int N, K, maxLen, maxHigh; - private static int[][] graph; - private static boolean[][] visited; - private static int[] dx = {-1 ,1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - private static void DFS(int x, int y, int h, int l, int cnt) { - for (int dir = 0; dir < 4; dir++) { - if (maxLen < l) maxLen = l; - - int nx = x + dx[dir]; - int ny = y + dy[dir]; - - if (0 <= nx && nx < N && 0 <= ny && ny < N && !visited[nx][ny]) { - if (h <= graph[nx][ny]) { - if (cnt == 0) { - if (h> graph[nx][ny] - K) { - visited[nx][ny] = true; - DFS(nx, ny, h - 1, l + 1, cnt + 1); - visited[nx][ny] = false; - } - } - } else { - visited[nx][ny] = true; - DFS(nx, ny, graph[nx][ny], l + 1, cnt); - visited[nx][ny] = false; - } - } - } - } - - private static void Solution() { - for (int i = 0; i < N; i++) { - for (int j = 0 ;j < N; j++) { - if (graph[i][j] == maxHigh) { - visited[i][j] = true; - DFS(i, j, maxHigh, 1, 0); - visited[i][j] = false; - } - } - } - } - - private static void input() throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - String[] line = br.readLine().split(" "); - N = Integer.parseInt(line[0]); - K = Integer.parseInt(line[1]); - maxLen = maxHigh = 0; - graph = new int[N][N]; - visited = new boolean[N][N]; - - for (int i = 0 ; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0; j < N; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - if (maxHigh < graph[i][j]) { - maxHigh = graph[i][j]; - } - } - } - Solution(); - sb.append("#").append(tc).append(" ").append(maxLen).append("\n"); - } - System.out.println(sb.toString()); - br.close(); - } - - public static void main(String[] args) throws Exception { - input(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_1954.java b/JAVA_2021/src/SWEA/Solution_1954.java deleted file mode 100644 index 476a36d..0000000 --- a/JAVA_2021/src/SWEA/Solution_1954.java +++ /dev/null @@ -1,65 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solution_1954 { - private static int[] dx = {0, 1, 0, -1}; - private static int[] dy = {1, 0, -1, 0}; - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc < T + 1; tc++) { - int N = Integer.parseInt(br.readLine()); - - if (N == 1) { - System.out.println("#" + tc); - System.out.println(1); - continue; - } - - int[][] graph = new int[N][N]; - - int x = 0; - int y = 0; - int dir = 0; - - for (int i = 0; i < N * N; i++) { - graph[x][y] = i + 1; - x += dx[dir]; - y += dy[dir]; - - if (x < 0 || x>= N || y < 0 || y>= N) { - x -= dx[dir]; - y -= dy[dir]; - - dir = (dir + 1) % 4; - - x += dx[dir]; - y += dy[dir]; - } - - if (graph[x][y] != 0) { - x -= dx[dir]; - y -= dy[dir]; - - dir = (dir + 1) % 4; - - x += dx[dir]; - y += dy[dir]; - } - } - System.out.println("#" + tc); - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - System.out.print(graph[i][j] + " "); - } - System.out.println(); - } - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_2001.java b/JAVA_2021/src/SWEA/Solution_2001.java deleted file mode 100644 index 23d825e..0000000 --- a/JAVA_2021/src/SWEA/Solution_2001.java +++ /dev/null @@ -1,47 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_2001 { - private static int M; - private static int[][] arr; - - private static int calc(int x, int y) { - int tmp = 0; - for (int i = x; i < x + M; i++) { - for (int j = y; j < y + M; j++) { - tmp += arr[i][j]; - } - } - return tmp; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc =1; tc < T + 1; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int N = Integer.parseInt(st.nextToken()); - M = Integer.parseInt(st.nextToken()); - arr = new int[N][N]; - - for (int i =0 ; i < N; i++) { - String[] a = br.readLine().split(" "); - for (int j = 0; j < N; j++) { - arr[i][j] = Integer.parseInt(a[j]); - } - } - int sum = 0; - for (int i = 0; i <= N - M; i++) { - for (int j = 0; j <= N - M; j++) { - sum = Math.max(sum, calc(i, j)); - } - } - System.out.println("#" + tc + " " + sum); - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_2805.java b/JAVA_2021/src/SWEA/Solution_2805.java deleted file mode 100644 index 75fe542..0000000 --- a/JAVA_2021/src/SWEA/Solution_2805.java +++ /dev/null @@ -1,32 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solution_2805 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - int N = Integer.parseInt(br.readLine()); - int[][] arr = new int[N][N]; - - for (int i = 0; i < N; i++) { - String s = br.readLine(); - for (int j = 0; j < N; j++) { - arr[i][j] = s.charAt(j) - '0'; - } - } - - int ans = 0; - for (int i = 0; i < N; i++) { - for (int j = Math.abs(N / 2 - i); j < N - Math.abs(N / 2 - i); j++) { - ans += arr[i][j]; - } - } - System.out.println("#" + tc + " " + ans); - } - } -} \ No newline at end of file diff --git a/JAVA_2021/src/SWEA/Solution_3234.java b/JAVA_2021/src/SWEA/Solution_3234.java deleted file mode 100644 index 80291a7..0000000 --- a/JAVA_2021/src/SWEA/Solution_3234.java +++ /dev/null @@ -1,60 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_3234 { - - private static int N, ans; - private static int[] input, res; - private static boolean[] chk; - - private static void Permutation(int depth) { - if (depth == N) { - check(0, 0, 0); - return; - } - - for (int i = 0 ; i < N; i++) { - if (chk[i]) continue; - chk[i] = true; - res[depth] = input[i]; - Permutation(depth + 1); - chk[i] = false; - } - } - - private static void check(int idx, int sumLeft, int sumRight) { - if (idx == N) { - ans++; - return; - } - check(idx + 1, sumLeft + res[idx], sumRight); - if (sumRight + res[idx] <= sumLeft) check(idx + 1, sumLeft, sumRight + res[idx]); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - N = Integer.parseInt(br.readLine()); - - input = new int[N]; - chk = new boolean[N + 1]; - res = new int[N]; - ans = 0; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0; i < N; i++) { - input[i] = Integer.parseInt(st.nextToken()); - } - - Permutation(0); - System.out.println("#" + tc + " " + ans); - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_3238.java b/JAVA_2021/src/SWEA/Solution_3238.java deleted file mode 100644 index 06e3f08..0000000 --- a/JAVA_2021/src/SWEA/Solution_3238.java +++ /dev/null @@ -1,72 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -// 페르마의 소정리 -// a ^(p - 1) = 1 (mod p) -// a ^(p - 2) = a ^-1 (mod p) -// (r! (n - r)!) ^ (1234567891 - 2) = (r! (n - r)!) ^ -1 - -// nCr = n! / r! (n - r)! = n! * (r! (n - r)!) ^-1 - -public class Solution_3238 { - private static long n, r; - private static int MOD; - - private static long fermat(long n, long r) { - long result = 1; - while (r> 0){ - if ((r % 1) == 1) { - result *= n; - result %= MOD; - } - n *= n; - n %= MOD; - r /= 2; - } - return result; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - StringBuilder sb = new StringBuilder(); - - for (int tc = 1; tc <= T; tc++) { - String[] line = br.readLine().split(" "); - n = Long.parseLong(line[0]); - r = Long.parseLong(line[1]); - MOD = Integer.parseInt(line[2]); - - long fac[] = new long[100000]; - fac[0] = 1; - - for (int i = 1; i <= MOD; i++) { - fac[i] = (fac[i - 1] * i) % MOD; - } - long result = 1; - while (n> 0 || r> 0) { - long a = n % MOD; - long b = r % MOD; - - if (a < b) result = 0; - if (result == 0) break; - - result *= fac[(int) a]; - result %= MOD; - result *= fermat((fac[(int) b] * fac[(int) a - (int) b]) % MOD, MOD - 2); - result %= MOD; - - n /= MOD; - r /= MOD; - } - - - sb.append("#").append(tc).append(" ").append(result).append("\n"); - } - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_3289.java b/JAVA_2021/src/SWEA/Solution_3289.java deleted file mode 100644 index bf15a0c..0000000 --- a/JAVA_2021/src/SWEA/Solution_3289.java +++ /dev/null @@ -1,67 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_3289 { - private static int n, m; - private static int[] parent, rank; - - private static int find(int x) { - if (parent[x] == x) return x; - return parent[x] = find(parent[x]); - } - - private static void union(int a, int b) { - int fa = find(a); - int fb = find(b); - - if (rank[fa] < rank[fb]) { - parent[fa] = fb; - } else { - parent[fb] = fa; - if (rank[fa] == rank[fb]) { - rank[fa]++; - } - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++){ - sb.append("#").append(tc).append(" "); - StringTokenizer st = new StringTokenizer(br.readLine()); - n = Integer.parseInt(st.nextToken()); - m = Integer.parseInt(st.nextToken()); - parent = new int[n + 1]; - rank = new int[n + 1]; - for (int i = 1; i < n + 1; i++) { - parent[i] = i; - rank[i] = 0; - } - - for (int i = 0 ; i < m; i++) { - st = new StringTokenizer(br.readLine()); - int cmd = Integer.parseInt(st.nextToken()); - int a = Integer.parseInt(st.nextToken()); - int b = Integer.parseInt(st.nextToken()); - - if (cmd == 0) { // 유니온 - union(a, b); - } else if (cmd == 1) { // 파인드 - int f_a = find(a); - int f_b = find(b); - sb.append((f_a == f_b) ? 1 : 0); - } - } - sb.append("\n"); - } - System.out.println(sb.toString()); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_3307.java b/JAVA_2021/src/SWEA/Solution_3307.java deleted file mode 100644 index 43427de..0000000 --- a/JAVA_2021/src/SWEA/Solution_3307.java +++ /dev/null @@ -1,41 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_3307 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - int ans= 0; - - for (int tc =1; tc <= T; tc++) { - int N = Integer.parseInt(br.readLine()); - int[] arr = new int[N]; - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0 ;i < N; i++) { - arr[i] = Integer.parseInt(st.nextToken()); - } - - int[] dp = new int[N]; - - for (int i = 0; i < N; i++) { - dp[i] = 1; - - for (int j = 0 ; j < i; j++) { - if (arr[i]> arr[j]) { - dp[i] = Math.max(dp[i], dp[j] + 1); - } - } - } - for (int i = 0 ; i A = new ArrayList(); - ArrayList B = new ArrayList(); - - for (int i = 0; i < N; i++) { - if (visited[i]) { - A.add(i); - } else { - B.add(i); - } - } - ans = Math.min(Math.abs(addSum(A) - addSum(B)), ans); - } - - private static int addSum(ArrayList tmp) { - int sum = 0; - - for (int i = 0; i < tmp.size(); i++) { - for (int j = i; j < tmp.size(); j++) { - sum += graph[tmp.get(i)][tmp.get(j)] + graph[tmp.get(j)][tmp.get(i)]; - } - } - return sum; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - N = Integer.parseInt(br.readLine()); - graph = new int[N][N]; - visited = new boolean[N]; - ans = 1234567890; - - for (int i = 0 ; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int j = 0; j < N; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - Recursive(0, 0); - System.out.println("#" + tc + " " +ans); - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_5215.java b/JAVA_2021/src/SWEA/Solution_5215.java deleted file mode 100644 index 806fa53..0000000 --- a/JAVA_2021/src/SWEA/Solution_5215.java +++ /dev/null @@ -1,53 +0,0 @@ -package SWEA; - -import java.io.*; -import java.util.StringTokenizer; - -public class Solution_5215 { - private static int[] score; - private static int[] calorie; - private static int N, L; - private static int max; - - - private static void hambug(int cnt, int sum, int cal) { - if (cal> L) return; - if (cnt == N) { - if (cal <= L) { - if (max < sum) { - max = sum; - } - } - return; - } - hambug(cnt + 1, sum + score[cnt], cal + calorie[cnt]); - hambug(cnt + 1, sum, cal); - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc < T + 1; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - max = 0; - N = Integer.parseInt(st.nextToken()); - L = Integer.parseInt(st.nextToken()); - - score = new int[N]; - calorie = new int[N]; - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine()); - score[i] = Integer.parseInt(st.nextToken()); - calorie[i] = Integer.parseInt(st.nextToken()); - } - hambug(0, 0, 0); - bw.write("#" + tc + " " + max + "\n"); - } // end tc - br.close(); - bw.flush(); - bw.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_5515.java b/JAVA_2021/src/SWEA/Solution_5515.java deleted file mode 100644 index c9aeef9..0000000 --- a/JAVA_2021/src/SWEA/Solution_5515.java +++ /dev/null @@ -1,42 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_5515 { - private static int m, d, diff, ans; - private static int[] days = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - StringBuilder sb = new StringBuilder(); - - for (int tc = 1; tc <= T; tc++) { - diff = 0; - ans = 4; - StringTokenizer st = new StringTokenizer(br.readLine()); - m = Integer.parseInt(st.nextToken()); - d = Integer.parseInt(st.nextToken()); - - if (m == 1) diff = d - 1; - else { - for (int i = 2; i < m; i++) { - diff += days[i]; - } - diff = diff + 30 + d; - } - int tmp = diff % 7; - if (tmp <= 2) { - ans += tmp; - } else { - ans = ans + tmp - 7; - } - sb.append("#").append(tc).append(" ").append(ans).append("\n"); - } - System.out.print(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_5607.java b/JAVA_2021/src/SWEA/Solution_5607.java deleted file mode 100644 index 66f2139..0000000 --- a/JAVA_2021/src/SWEA/Solution_5607.java +++ /dev/null @@ -1,54 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -// 페르마의 소정리 -// a ^(p - 1) = 1 (mod p) -// a ^(p - 2) = a ^-1 (mod p) -// (r! (n - r)!) ^ (1234567891 - 2) = (r! (n - r)!) ^ -1 - -// nCr = n! / r! (n - r)! = n! * (r! (n - r)!) ^-1 - -public class Solution_5607 { - private static final int MOD = 1234567891; - - private static long fermat(long n, int x) { - if (x == 0) return 1; - long tmp = fermat(n, x/2); - long result = (tmp * tmp) % MOD; - if (x % 2 ==0){ - return result; - } else { - return (result * n) % MOD; - } - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - StringBuilder sb = new StringBuilder(); - - for (int tc = 1; tc <= T; tc++) { - String[] line = br.readLine().split(" "); - int n = Integer.parseInt(line[0]); - int r = Integer.parseInt(line[1]); - - long fac[] = new long[n + 1]; - fac[0] = 1; - - for (int i = 1; i <= n; i++) { - fac[i] = (fac[i - 1] * i) % MOD; - } - - long bottom = (fac[r] * (fac[n - r])) % MOD; - long reBottom = fermat(bottom, MOD - 2); - - - sb.append("#").append(tc).append(" ").append((fac[n] * reBottom) % MOD).append("\n"); - } - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_5643.java b/JAVA_2021/src/SWEA/Solution_5643.java deleted file mode 100644 index 7687436..0000000 --- a/JAVA_2021/src/SWEA/Solution_5643.java +++ /dev/null @@ -1,69 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.StringTokenizer; - -public class Solution_5643 { // 키순서 - private static int N, M, from_, to_; - private static final int INF = (int) 1e9; - private static int[][] path; - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int T = Integer.parseInt(br.readLine()); - for (int tc = 1; tc <= T; tc++) { - N = Integer.parseInt(br.readLine()); - M = Integer.parseInt(br.readLine()); - path = new int[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - path[i][j] = INF; - } - } - - for (int i = 0 ; i < M;i ++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - from_ = Integer.parseInt(st.nextToken()); - to_ = Integer.parseInt(st.nextToken()); - path[from_ - 1][to_ - 1] = 1; - } - - - for (int k = 0; k < N; k++) { - for (int i = 0 ; i < N; i++) { - for (int j = 0 ; j < N; j++) { - if (path[i][k] + path[k][j] == 2) { - path[i][j] = 1; - } - } - } - } - - int[] answer = new int[N]; - for (int i = 0 ; i < N; i++) { - for (int j = 0 ; j < N; j++) { - if (path[i][j] == 1) { - answer[i]++; - answer[j]++; - } - } - } - - int tmp = 0; - for (int i = 0 ; i < N; i++) { - if (answer[i] == (N - 1)) { - tmp++; - } - } - sb.append("#").append(tc).append(" ").append(tmp).append("\n"); - } - System.out.print(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_5656.java b/JAVA_2021/src/SWEA/Solution_5656.java deleted file mode 100644 index a6e0b0b..0000000 --- a/JAVA_2021/src/SWEA/Solution_5656.java +++ /dev/null @@ -1,127 +0,0 @@ -package SWEA; - -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 Solution_5656 { // 벽돌 깨기 - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - private static int N, W, H, answer; - private static int[][] graph; - - private static void copyGraph(int[][] graph, int[][] graph2) { - for (int i = 0 ; i < H; i++) { - for (int j = 0 ; j < W; j++) { - graph2[i][j] = graph[i][j]; - } - } - } - - private static int burst(int[][] graph, int x, int y) { - int cnt = 0; - Queue queue = new LinkedList(); - if (graph[x][y]> 1) { - queue.offer(new Node(x, y, graph[x][y])); - } - graph[x][y] = 0; - cnt++; - // 이부분이 지옥이네 - while (!queue.isEmpty()) { - Node node = queue.poll(); - for (int d = 0; d < 4; d++) { - int x2 = node.x; - int y2 = node.y; - for (int k = 0; k < node.range - 1; k++) { - x2 += dx[d]; - y2 += dy[d]; - if (x2 < 0 || x2>= H || y2 < 0 || y2>= W || graph[x2][y2] == 0) continue; - if (graph[x2][y2]> 1) queue.offer(new Node(x2, y2, graph[x2][y2])); - graph[x2][y2] = 0; - cnt++; - } - } - } - return cnt; - } - - private static void downBrick(int[][] graph) { - for (int y = 0; y < W; y++) { - int x = H - 1; - while(x> 0) { - if (graph[x][y] == 0) { - int nx = x - 1; - while(nx> 0 && graph[nx][y] == 0) nx--; - graph[x][y] = graph[nx][y]; - graph[nx][y] = 0; - } - x--; - } - } - } - - private static boolean Combination(int depth, int remain, int[][] map) { - if (remain == 0) { - answer = 0; - return true; - } - - if (depth == N) { - answer = Math.min(answer, remain); - return false; - } - - int[][] newMap = new int[H][W]; - for (int j = 0; j < W; j++) { - int i = 0; - while (i < H && map[i][j] == 0) ++i; - if (i == H) continue; - copyGraph(map, newMap); - int burstCnt = burst(newMap, i, j); - downBrick(newMap); - if (Combination(depth + 1, remain - burstCnt, newMap)) return true; - } - return false; - } - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - W = Integer.parseInt(st.nextToken()); - H = Integer.parseInt(st.nextToken()); - graph = new int[H][W]; - answer = Integer.MAX_VALUE; - - int totalBrick = 0; - for (int i = 0; i < H; i++) { - st = new StringTokenizer(br.readLine()); - for (int j =0; j < W; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - if (graph[i][j]> 0) totalBrick++; - } - } - - StringBuilder sb = new StringBuilder(); - Combination(0, totalBrick, graph); - sb.append("#").append(tc).append(" ").append(answer).append("\n"); - System.out.print(sb); - } - br.close(); - } - private static class Node { - int x, y, range; - - public Node(int x, int y, int range) { - this.x = x; - this.y = y; - this.range = range; - } - } -} diff --git a/JAVA_2021/src/SWEA/Solution_6485.java b/JAVA_2021/src/SWEA/Solution_6485.java deleted file mode 100644 index 8e5e8a0..0000000 --- a/JAVA_2021/src/SWEA/Solution_6485.java +++ /dev/null @@ -1,66 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_6485 { - private static int[] arr; - - private static void Check(int a, int b) { - for (int j = a; j <= b; j++) { - arr[j]++; - } - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - int N = Integer.parseInt(br.readLine()); - StringBuilder sb = new StringBuilder(); - arr = new int[5001]; - - for (int i = 0; i < N; i++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int A = Integer.parseInt(st.nextToken()); - int B = Integer.parseInt(st.nextToken()); - Check(A, B); - } - - sb.append("#").append(tc).append(" "); - - int P = Integer.parseInt(br.readLine()); - for (int i = 0; i < P - 1; i++) { - int tmp = Integer.parseInt(br.readLine()); - sb.append(arr[tmp]).append(" "); - } - sb.append(arr[Integer.parseInt(br.readLine())]); - System.out.println(sb); - } - br.close(); - } -} - -/* -2 -2 -1 3 -2 5 -5 -1 -2 -3 -4 -5 -2 -1 100 -1 50 -5 -1 -2 -3 -4 -5 - */ \ No newline at end of file diff --git a/JAVA_2021/src/SWEA/Solution_6808.java b/JAVA_2021/src/SWEA/Solution_6808.java deleted file mode 100644 index 1a33b05..0000000 --- a/JAVA_2021/src/SWEA/Solution_6808.java +++ /dev/null @@ -1,80 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_6808 { - private static int size = 9, win, lose; - private static int[] gyuNum, inNum, in_tmp; - private static boolean[] numSelect; - private static boolean[] isSelect; - - private static void Permutation(int depth) { - if (depth == 9) { - int a = 0, b = 0; - - for (int i =0; i < size; i++) { - if (gyuNum[i]> in_tmp[i]) { - a += gyuNum[i] + in_tmp[i]; - } else { - b += gyuNum[i] + in_tmp[i]; - } - } - - if (a> b) { // 규형 기준 - win++; - } else if (a < b) { - lose++; - } - - return; - } - - for (int i = 0; i < size; i++) { - if (isSelect[i]) continue; - - in_tmp[depth] = inNum[i]; - isSelect[i] = true; - Permutation(depth + 1); - isSelect[i] = false; - } - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - gyuNum = new int[size]; - in_tmp = new int[size]; - inNum = new int[size]; - numSelect = new boolean[2 * size + 1]; - isSelect = new boolean[2 * size + 1]; - win = 0; - lose = 0; - - StringTokenizer st = new StringTokenizer(br.readLine()); - for (int i = 0; i < 9; i++) { - gyuNum[i] = Integer.parseInt(st.nextToken()); - numSelect[gyuNum[i]] = true; - } - - int cnt = 0; - for (int i = 1; i <= size * 2; i++) { - if (!numSelect[i]) { - inNum[cnt++] = i; - } - } - - Permutation(0); - - sb.append("#").append(tc).append(" ").append(win).append(" ").append(lose).append("\n"); - } - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_2021/src/SWEA/Solution_7964.java b/JAVA_2021/src/SWEA/Solution_7964.java deleted file mode 100644 index 878593c..0000000 --- a/JAVA_2021/src/SWEA/Solution_7964.java +++ /dev/null @@ -1,55 +0,0 @@ -package SWEA; - -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 Solution_7964 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - Queue queue = new LinkedList(); - int T = Integer.parseInt(br.readLine()); - for (int tc = 1; tc <= T; tc++) { - StringTokenizer st = new StringTokenizer(br.readLine()); - int city = Integer.parseInt(st.nextToken()); - int limit = Integer.parseInt(st.nextToken()); - - st = new StringTokenizer(br.readLine()); - for (int i = 0 ; i arr; - private static int[] moveA, moveB; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - String[] line = br.readLine().split(" "); - M = Integer.parseInt(line[0]); - A = Integer.parseInt(line[1]); - - st = new StringTokenizer(br.readLine()); - moveA = new int[M]; - for (int i = 0; i < M; i++) { - moveA[i] = Integer.parseInt(st.nextToken()); - } - - st = new StringTokenizer(br.readLine()); - moveB = new int[M]; - for (int i = 0; i < M; i++) { - moveB[i] = Integer.parseInt(st.nextToken()); - } - - arr = new ArrayList(); - for (int i = 0; i < A; i++) { - st = new StringTokenizer(br.readLine()); - int x = Integer.parseInt(st.nextToken()); - int y = Integer.parseInt(st.nextToken()); - int c = Integer.parseInt(st.nextToken()); - int p = Integer.parseInt(st.nextToken()); - - arr.add(new Node(x, y, c, p)); - } - - int answer = charge(); - System.out.println("#" + tc + " " + answer); - } - br.close(); - } - - private static int charge() { - int x1 = 1; - int y1 = 1; - - int x2 = 10; - int y2 = 10; - - int sum = getMax(x1, y1, x2, y2); - - for (int time = 0; time < M; time++) { - x1 += dx[moveA[time]]; - y1 += dy[moveA[time]]; - - x2 += dx[moveB[time]]; - y2 += dy[moveB[time]]; - - sum += getMax(x1, y1, x2, y2); - } - - return sum; - } - - private static int getMax(int x1, int y1, int x2, int y2) { - int[][] amount = new int[2][A]; - - for (int i = 0; i< A; i++) { - amount[0][i] = check(x1, y1, i); - } - - for (int i = 0; i < A; i++) { - amount[1][i] = check(x2, y2, i); - } - - int res = 0; - for (int i = 0; i < A; i++) { - for (int j = 0 ; j < A; j++) { - int sum = amount[0][i] + amount[1][j]; - - if (i == j && amount[0][i] == amount[1][j]) { - sum /= 2; - } - - if (sum> res) { - res = sum; - } - } - } - - return res; - } - - private static int check(int x, int y, int num) { - int a = Math.abs(x - arr.get(num).x); - int b = Math.abs(y - arr.get(num).y); - int dist = a + b; - - if (dist <= arr.get(num).c) { - return arr.get(num).p; - } else { - return 0; - } - } - - private static class Node{ - int x, y, c, p; - - public Node(int x, int y, int c, int p) { - this.x = x; - this.y = y; - this.c = c; - this.p = p; - } - } - -} \ No newline at end of file diff --git "a/JAVA_2021/src/SWEA/Solution_353円263円264円352円270円211円353円241円234円.java" "b/JAVA_2021/src/SWEA/Solution_353円263円264円352円270円211円353円241円234円.java" deleted file mode 100644 index 441258b..0000000 --- "a/JAVA_2021/src/SWEA/Solution_353円263円264円352円270円211円353円241円234円.java" +++ /dev/null @@ -1,68 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.Queue; - -public class Solution_보급로 { - private static int N; - private static char[][] graph; - private static int[][] memory; - private static int[] dx = {-1, 1, 0, 0}; - private static int[] dy = {0, 0, -1, 1}; - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc++) { - StringBuilder sb = new StringBuilder(); - N = Integer.parseInt(br.readLine()); - graph = new char[N][]; - memory = new int[N][N]; - - for (int i = 0 ; i < N; i++) { - graph[i] = br.readLine().toCharArray(); - Arrays.fill(memory[i], Integer.MAX_VALUE / 2); - } - - Queue queue = new LinkedList(); - memory[0][0] = 0; - queue.offer(new Node(0, 0, 0)); // 초기화 - - while (!queue.isEmpty()) { - Node tmp = queue.poll(); - - for (int k = 0; k < 4; k++) { - int x = tmp.x + dx[k]; - int y = tmp.y + dy[k]; - - if (0 <= x && x < N && 0 <= y && y < N) { - int time = tmp.val + Integer.parseInt("" + graph[x][y]); - if (memory[x][y]> time) { - memory[x][y] = time; - queue.offer(new Node(x, y, memory[x][y])); - } - } - } - } - - sb.append("#").append(tc).append(" ").append(memory[N-1][N-1]); - System.out.println(sb); - } - br.close(); - } - - private static class Node{ - int x, y, val; - - public Node(int x, int y, int val) { - this.x = x; - this.y = y; - this.val = val; - } - } -} diff --git "a/JAVA_2021/src/SWEA/Solution_355円231円234円354円243円274円353円241円234円352円261円264円354円204円244円.java" "b/JAVA_2021/src/SWEA/Solution_355円231円234円354円243円274円353円241円234円352円261円264円354円204円244円.java" deleted file mode 100644 index 0981e83..0000000 --- "a/JAVA_2021/src/SWEA/Solution_355円231円234円354円243円274円353円241円234円352円261円264円354円204円244円.java" +++ /dev/null @@ -1,91 +0,0 @@ -package SWEA; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.StringTokenizer; - -public class Solution_활주로건설 { - private static int N, X; - private static int[][] graph, graph2; - - private static int Solve(int[] arr, int x) { - int cnt = 1; - int before = arr[0]; - - for (int i = 1 ; i < arr.length; i++) { - if (arr[i] < before) { - if (before - arr[i]> 1) { - return 0; - } else { - if ((i + x)> arr.length) { - return 0; - } else { - for (int j = i; j < i + x; j++) { - if (arr[j] != arr[i]) { - return 0; - } - } - cnt = -x +1; - } - } - } else if (arr[i]> before) { - if (arr[i] - before> 1) { - return 0; - } else { - if (cnt>= x) { - cnt = 1; - } else { - return 0; - } - } - } else { - cnt++; - } - before = arr[i]; - } - return 1; - } - - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int T = Integer.parseInt(br.readLine()); - - for (int tc = 1; tc <= T; tc ++ ){ - StringTokenizer st = new StringTokenizer(br.readLine()); - N = Integer.parseInt(st.nextToken()); - X = Integer.parseInt(st.nextToken()); - graph = new int[N][N]; - graph2 = new int[N][N]; - - - for (int i = 0; i < N; i++) { - st = new StringTokenizer(br.readLine()); - for (int j = 0 ; j < N; j++) { - graph[i][j] = Integer.parseInt(st.nextToken()); - } - } - - for (int i = 0 ; i < N; i++) { - for (int j = 0; j < N; j++) { - graph2[j][i] = graph[i][j]; - } - } - - - int answer = 0; - for (int i = 0 ; i < N; i++) { - answer += Solve(graph[i], X); - } - - for (int i = 0 ; i < N; i++) { - answer += Solve(graph2[i], X); - } - - StringBuilder sb = new StringBuilder(); - sb.append("#").append(tc).append(" ").append(answer).append("\n"); - System.out.print(sb); - } - } -} diff --git a/JAVA_BOJ_2023/.gitignore b/JAVA_BOJ_2023/.gitignore deleted file mode 100644 index e9e93f1..0000000 --- a/JAVA_BOJ_2023/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -out -.idea -workspace.xmi \ No newline at end of file diff --git a/JAVA_BOJ_2023/array/boj_10813.java b/JAVA_BOJ_2023/array/boj_10813.java deleted file mode 100644 index cc93097..0000000 --- a/JAVA_BOJ_2023/array/boj_10813.java +++ /dev/null @@ -1,36 +0,0 @@ -package array; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.StringTokenizer; - -public class boj_10813 { - - 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()); - - ArrayList list = new ArrayList(N); - - for (int i = 1; i <= N; ++i) { - list.add(i); - } - - for (int idx = 0; idx < M; ++idx) { - st = new StringTokenizer(br.readLine()); - int i = Integer.parseInt(st.nextToken()) - 1; - int j = Integer.parseInt(st.nextToken()) - 1; - - int tmp = list.get(i); - list.set(i, list.get(j)); - list.set(j, tmp); - } - for (int i = 0; i < list.size(); ++i) { - System.out.print(list.get(i) + " "); - } - } -} diff --git a/JAVA_BOJ_2023/forloop/boj_25314.java b/JAVA_BOJ_2023/forloop/boj_25314.java deleted file mode 100644 index dacd5d6..0000000 --- a/JAVA_BOJ_2023/forloop/boj_25314.java +++ /dev/null @@ -1,21 +0,0 @@ -package forloop; - -import java.util.Scanner; - -public class boj_25314 { - - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - int sum = n / 4; - - StringBuilder sb = new StringBuilder(); - - for (int i = 1; i <= sum; ++i) { - sb.append("long "); - } - - sb.append("int"); - System.out.println(sb.toString()); - } -} \ No newline at end of file diff --git a/JAVA_BOJ_2023/list/boj_10810.java b/JAVA_BOJ_2023/list/boj_10810.java deleted file mode 100644 index 38f4bd7..0000000 --- a/JAVA_BOJ_2023/list/boj_10810.java +++ /dev/null @@ -1,41 +0,0 @@ -package list; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.StringTokenizer; - -public class boj_10810 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringTokenizer st = new StringTokenizer(br.readLine()); - StringBuilder sb = new StringBuilder(); - - int n = Integer.parseInt(st.nextToken()); - int m = Integer.parseInt(st.nextToken()); - - HashMap hashMap = new HashMap(); - for (int i = 0; i < n; ++i) { - hashMap.put(i + 1, 0); - } - - for (int tc = 0; tc < m; ++tc) { - st = new StringTokenizer(br.readLine()); - int i = Integer.parseInt(st.nextToken()); - int j = Integer.parseInt(st.nextToken()); - int k = Integer.parseInt(st.nextToken()); - - int idx = i; - while (idx <= j) { - hashMap.put(idx, k); - idx++; - } - } - - for (int i = 1; i <= n; ++i) { - sb.append(hashMap.get(i)).append(" "); - } - System.out.println(sb.toString()); - } -} diff --git a/JAVA_BOJ_2025/.idea/.gitignore b/JAVA_BOJ_2025/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/JAVA_BOJ_2025/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/JAVA_BOJ_2025/.idea/JAVA_BOJ_2024.iml b/JAVA_BOJ_2025/.idea/JAVA_BOJ_2024.iml deleted file mode 100644 index b107a2d..0000000 --- a/JAVA_BOJ_2025/.idea/JAVA_BOJ_2024.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/JAVA_BOJ_2025/Solve5585.java b/JAVA_BOJ_2025/Solve5585.java deleted file mode 100644 index de55821..0000000 --- a/JAVA_BOJ_2025/Solve5585.java +++ /dev/null @@ -1,21 +0,0 @@ -import java.util.Scanner; - -public class Solve5585 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - - int sum_cnt = 0; - int origin = 1000 - n; - int[] coins = {500, 100, 50, 10, 5, 1}; - - for (int i = 0; i < coins.length; i++) { - sum_cnt += origin / coins[i]; - origin %= coins[i]; - } - - System.out.println(sum_cnt); - - sc.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_10102.java b/JAVA_BOJ_2025/Solve_10102.java deleted file mode 100644 index b22e43d..0000000 --- a/JAVA_BOJ_2025/Solve_10102.java +++ /dev/null @@ -1,29 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_10102 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int[] voteBox = new int[2]; - - int v = Integer.parseInt(br.readLine()); - String input = br.readLine(); - - for (int j = 0; j < v; j++) { - if (input.charAt(j) == 'A') { - voteBox[0]++; - } else if (input.charAt(j) == 'B') { - voteBox[1]++; - } - } - - if (voteBox[0] == voteBox[1]) { - System.out.println("Tie"); - } else if (voteBox[0]> voteBox[1]) { - System.out.println("A"); - } else { - System.out.println("B"); - } - } -} diff --git a/JAVA_BOJ_2025/Solve_10798.java b/JAVA_BOJ_2025/Solve_10798.java deleted file mode 100644 index df6ec49..0000000 --- a/JAVA_BOJ_2025/Solve_10798.java +++ /dev/null @@ -1,30 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; - -public class Solve_10798 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - char[][] arr = new char[5][15]; - - for (int i = 0 ; i < 5; i++) { - String input = br.readLine(); - - for (int j = 0 ; j = 0; i--) { - sb.append(input.charAt(i)); - } - sb.append('\n'); - } - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_11721.java b/JAVA_BOJ_2025/Solve_11721.java deleted file mode 100644 index b9c6a9b..0000000 --- a/JAVA_BOJ_2025/Solve_11721.java +++ /dev/null @@ -1,20 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_11721 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String input = br.readLine(); - StringBuilder sb = new StringBuilder(); - - for (int i = 1; i < input.length() + 1; i++) { - sb.append(input.charAt(i - 1)); - if (i % 10 == 0) { - sb.append("\n"); - } - } - System.out.println(sb.toString()); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_11945.java b/JAVA_BOJ_2025/Solve_11945.java deleted file mode 100644 index 1b51425..0000000 --- a/JAVA_BOJ_2025/Solve_11945.java +++ /dev/null @@ -1,24 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_11945 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] input = br.readLine().split(" "); - int N = Integer.parseInt(input[0]); - int M = Integer.parseInt(input[1]); - - StringBuilder sb = new StringBuilder(); - for (int i = 1; i <= N; i++) { - String bung = br.readLine(); - - for (int j = M; j>= 1; j--) { - sb.append(bung.charAt(j - 1)); - } - sb.append("\n"); - } - System.out.println(sb.toString()); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_15000.java b/JAVA_BOJ_2025/Solve_15000.java deleted file mode 100644 index c8986f9..0000000 --- a/JAVA_BOJ_2025/Solve_15000.java +++ /dev/null @@ -1,14 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_15000 { - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String input = br.readLine(); - - System.out.println(input.toUpperCase()); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_1672.java b/JAVA_BOJ_2025/Solve_1672.java deleted file mode 100644 index 2d2aa3b..0000000 --- a/JAVA_BOJ_2025/Solve_1672.java +++ /dev/null @@ -1,42 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class Solve_1672 { - static char[][] rules = { - {'A', 'C', 'A', 'G'}, - {'C', 'G', 'T', 'A'}, - {'A', 'T', 'C', 'G'}, - {'G', 'A', 'G', 'T'} - }; - - static int getIndex (char c) { - switch (c) { - case 'A': return 0; - case 'G': return 1; - case 'C': return 2; - case 'T': return 3; - default: return -1; - } - } - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int length = Integer.parseInt(br.readLine()); - String dna = br.readLine(); - - char result = dna.charAt(length - 1); - for (int i = length - 2; i>= 0; i--) { - char left = dna.charAt(i); - int idx1 = getIndex(left); - int idx2 = getIndex(result); - result = rules[idx1][idx2]; - } - - System.out.println(result); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_17548.java b/JAVA_BOJ_2025/Solve_17548.java deleted file mode 100644 index f43d680..0000000 --- a/JAVA_BOJ_2025/Solve_17548.java +++ /dev/null @@ -1,27 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_17548 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String input = br.readLine(); - - int e_cnt = 0; - for (int i = 0; i < input.length(); i++) { - if (input.charAt(i) == 'e') { - e_cnt++; - } - } - - StringBuilder sb = new StringBuilder(); - sb.append("h"); - for (int i = 0; i < e_cnt * 2; i++) { - sb.append("e"); - } - sb.append("y"); - - System.out.println(sb.toString()); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_18312.java b/JAVA_BOJ_2025/Solve_18312.java deleted file mode 100644 index 1de2797..0000000 --- a/JAVA_BOJ_2025/Solve_18312.java +++ /dev/null @@ -1,27 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_18312 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String[] input = br.readLine().split(" "); - - int N = Integer.parseInt(input[0]); - String target = input[1]; - int result = 0; - - for (int i = 0; i <= N; i++) { // 시간 - for (int j = 0; j <= 59; j++) { // 분 - for (int k = 0; k <= 59; k++) { // 초 - String time = String.format("%02d:%02d:%02d", i, j, k); - if (time.contains(target)) { - result++; - } - } - } - } - System.out.println(result); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_25372.java b/JAVA_BOJ_2025/Solve_25372.java deleted file mode 100644 index 2f1beb5..0000000 --- a/JAVA_BOJ_2025/Solve_25372.java +++ /dev/null @@ -1,21 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_25372 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - - for (; n> 0; n--) { - String s = br.readLine(); - if (s.length()>= 6 && s.length() <= 9) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - br.close(); - - } -} diff --git a/JAVA_BOJ_2025/Solve_26264.java b/JAVA_BOJ_2025/Solve_26264.java deleted file mode 100644 index d2cb19c..0000000 --- a/JAVA_BOJ_2025/Solve_26264.java +++ /dev/null @@ -1,32 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_26264 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - String input = br.readLine(); - - int bcnt = 0; - int scnt = 0; - - for (int i = 0; i < input.length(); i++) { - if (input.substring(i, i + 1).equals("b")) { - bcnt++; - } else if (input.substring(i, i + 1).equals("s")) { - scnt++; - } - } - - if (bcnt> scnt) { - System.out.println("bigdata?"); - } else if (bcnt < scnt) { - System.out.println("security!"); - } else { - System.out.println("bigdata? security!"); - } - - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_2743.java b/JAVA_BOJ_2025/Solve_2743.java deleted file mode 100644 index 1c3776b..0000000 --- a/JAVA_BOJ_2025/Solve_2743.java +++ /dev/null @@ -1,12 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_2743 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String input = br.readLine(); - - System.out.println(input.length()); - } -} diff --git a/JAVA_BOJ_2025/Solve_2754.java b/JAVA_BOJ_2025/Solve_2754.java deleted file mode 100644 index fd021b0..0000000 --- a/JAVA_BOJ_2025/Solve_2754.java +++ /dev/null @@ -1,33 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.HashMap; - -public class Solve_2754 { - - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String input = br.readLine(); - - HashMap map = new HashMap(); - map.put("A+", "4.3"); - map.put("A0", "4.0"); - map.put("A-", "3.7"); - map.put("B+", "3.3"); - map.put("B0", "3.0"); - map.put("B-", "2.7"); - map.put("C+", "2.3"); - map.put("C0", "2.0"); - map.put("C-", "1.7"); - map.put("D+", "1.3"); - map.put("D0", "1.0"); - map.put("D-", "0.7"); - map.put("F", "0.0"); - - if (map.containsKey(input)) { - System.out.println(map.get(input)); - } - - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_27866.java b/JAVA_BOJ_2025/Solve_27866.java deleted file mode 100644 index 905ab07..0000000 --- a/JAVA_BOJ_2025/Solve_27866.java +++ /dev/null @@ -1,25 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; - -public class Solve_27866 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - ArrayList inputList = new ArrayList(); - - for (int i = 0; i < 2; ++i) { - String inputline = br.readLine(); - inputList.add(inputline); - } - - String str = inputList.get(0); - int idx = Integer.parseInt(inputList.get(1)); - - for (int i = 0; i < str.length(); i++) { - if (i == idx - 1) { - System.out.println(str.charAt(i)); - } - } - } -} diff --git a/JAVA_BOJ_2025/Solve_2884.java b/JAVA_BOJ_2025/Solve_2884.java deleted file mode 100644 index 7dd3ae4..0000000 --- a/JAVA_BOJ_2025/Solve_2884.java +++ /dev/null @@ -1,21 +0,0 @@ -import java.util.Scanner; - -public class Solve_2884 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int hour = sc.nextInt(); - int minute = sc.nextInt(); - - if (hour == 0 && minute < 45) { - hour = 24; - } - - if (minute < 45) { - hour-=1; - minute+=15; - } else { - minute-=45; - } - System.out.println(hour + " " + minute); - } -} diff --git a/JAVA_BOJ_2025/Solve_30501.java b/JAVA_BOJ_2025/Solve_30501.java deleted file mode 100644 index 64df74f..0000000 --- a/JAVA_BOJ_2025/Solve_30501.java +++ /dev/null @@ -1,19 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_30501 { - public static void main(String[] args) throws IOException { - BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(input.readLine()); - - for (; n> 0; n--) { - String name = input.readLine(); - if (name.contains("S")) { - System.out.println(name); - break; - } - } - input.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_32929.java b/JAVA_BOJ_2025/Solve_32929.java deleted file mode 100644 index dc12fad..0000000 --- a/JAVA_BOJ_2025/Solve_32929.java +++ /dev/null @@ -1,19 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_32929 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - - if (n % 3 == 0) { - System.out.println('S'); - } else if (n % 3 == 1) { - System.out.println('U'); - } else if (n % 3 == 2) { - System.out.println('O'); - } - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_5026.java b/JAVA_BOJ_2025/Solve_5026.java deleted file mode 100644 index df27d65..0000000 --- a/JAVA_BOJ_2025/Solve_5026.java +++ /dev/null @@ -1,26 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_5026 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - int n = Integer.parseInt(br.readLine()); - - for (int i = 0; i < n; i++) { - String input = br.readLine(); - String[] strArr = {}; - - if (input.contains("+")) { - strArr = input.split("\\+"); - sb.append(Integer.parseInt(strArr[0]) + Integer.parseInt(strArr[1])); - } else if (input.equals("P=NP")) { - sb.append("skipped"); - } - sb.append("\n"); - } - System.out.println(sb.toString()); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_5357.java b/JAVA_BOJ_2025/Solve_5357.java deleted file mode 100644 index cd55c1e..0000000 --- a/JAVA_BOJ_2025/Solve_5357.java +++ /dev/null @@ -1,33 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Stack; - -public class Solve_5357 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int n = Integer.parseInt(br.readLine()); - StringBuilder sb = new StringBuilder(); - - for (; n> 0; n--) { - String input = br.readLine(); - Stack stack = new Stack(); - - for (int i = 0; i < input.length(); i++) { - stack.push(input.charAt(i)); - if (stack.size() != 1) { - if (input.charAt(i - 1) == stack.peek()) { - stack.pop(); - } - } - } - - for (Character c : stack) { - sb.append(c); - } - sb.append("\n"); - } - System.out.println(sb); - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_6378.java b/JAVA_BOJ_2025/Solve_6378.java deleted file mode 100644 index 5088263..0000000 --- a/JAVA_BOJ_2025/Solve_6378.java +++ /dev/null @@ -1,28 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_6378 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - while(true) { - String input = br.readLine(); - - if (input.equals("0")) { - break; - } - - while (input.length()> 1) { - int sum = 0; - - for (char c : input.toCharArray()) { - sum += c - '0'; - } - input = String.valueOf(sum); - } - System.out.println(input); - } - br.close(); - } -} diff --git a/JAVA_BOJ_2025/Solve_9012.java b/JAVA_BOJ_2025/Solve_9012.java deleted file mode 100644 index 822cd0f..0000000 --- a/JAVA_BOJ_2025/Solve_9012.java +++ /dev/null @@ -1,42 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class Solve_9012 { - public static void main(String[] args) throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - int num = Integer.parseInt(br.readLine()); - - StringBuilder sb = new StringBuilder(); - - for (int i = 0; i < num; i++) { - String input = br.readLine(); - if (checkLogic(input)) { - sb.append("YES").append("\n"); - } else { - sb.append("NO").append("\n"); - } - } - - System.out.println(sb.toString()); - br.close(); - } - - public static boolean checkLogic(String input) { - int cnt = 0; - for (int i = 0; i < input.length(); i++) { - if (input.charAt(i) == '(') { - cnt++; - } else { - cnt--; - } - if (cnt < 0) { - return false; - } - } - if (cnt == 0) { - return true; - } - return false; - } -} diff --git a/JAVA_BOJ_2025/Solve_9498.java b/JAVA_BOJ_2025/Solve_9498.java deleted file mode 100644 index c09820d..0000000 --- a/JAVA_BOJ_2025/Solve_9498.java +++ /dev/null @@ -1,25 +0,0 @@ -import java.util.Scanner; - -public class Solve_9498 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int score = sc.nextInt(); - - String answer = solve(score); - System.out.println(answer); - } - - public static String solve(int score) { - String result = "F"; - if (score>= 90 && score <= 100) { - return "A"; - } else if (score>= 80 && score < 90) { - return "B"; - } else if (score>= 70 && score < 80) { - return "C"; - } else if (score>= 60 && score < 70) { - return "D"; - } - return result; - } -} diff --git a/JAVA_BOJ_2025/out/production/JAVA_BOJ_2024/.idea/.gitignore b/JAVA_BOJ_2025/out/production/JAVA_BOJ_2024/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/JAVA_BOJ_2025/out/production/JAVA_BOJ_2024/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/JAVA_BOJ_2025/out/production/JAVA_BOJ_2024/.idea/JAVA_BOJ_2024.iml b/JAVA_BOJ_2025/out/production/JAVA_BOJ_2024/.idea/JAVA_BOJ_2024.iml deleted file mode 100644 index b107a2d..0000000 --- a/JAVA_BOJ_2025/out/production/JAVA_BOJ_2024/.idea/JAVA_BOJ_2024.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/JAVA_LEETCODE_2024/.idea/.gitignore b/JAVA_LEETCODE_2024/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/JAVA_LEETCODE_2024/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/JAVA_LEETCODE_2024/.idea/JAVA_LEETCODE_2024.iml b/JAVA_LEETCODE_2024/.idea/JAVA_LEETCODE_2024.iml deleted file mode 100644 index b107a2d..0000000 --- a/JAVA_LEETCODE_2024/.idea/JAVA_LEETCODE_2024.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/JAVA_LEETCODE_2024/out/production/JAVA_LEETCODE_2024/.idea/.gitignore b/JAVA_LEETCODE_2024/out/production/JAVA_LEETCODE_2024/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/JAVA_LEETCODE_2024/out/production/JAVA_LEETCODE_2024/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/JAVA_LEETCODE_2024/out/production/JAVA_LEETCODE_2024/.idea/JAVA_LEETCODE_2024.iml b/JAVA_LEETCODE_2024/out/production/JAVA_LEETCODE_2024/.idea/JAVA_LEETCODE_2024.iml deleted file mode 100644 index b107a2d..0000000 --- a/JAVA_LEETCODE_2024/out/production/JAVA_LEETCODE_2024/.idea/JAVA_LEETCODE_2024.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/JAVA_LEETCODE_2024/solution35.java b/JAVA_LEETCODE_2024/solution35.java deleted file mode 100644 index acd8713..0000000 --- a/JAVA_LEETCODE_2024/solution35.java +++ /dev/null @@ -1,31 +0,0 @@ -public class solution35 { - /** - * 35. Search Insert Position - * - * Given a sorted array of distinct integers and a target value, - * return the index if the target is found. - * If not, return the index where it would be if it were inserted in order. - * You must write an algorithm with O(log n) runtime complexity. - */ - public static void main(String[] args) { - int[] nums = {1,3,5,6}; - System.out.println(solution(5, nums)); - } - - public static int solution(int target, int[] nums) { - int left = 0; - int right = nums.length - 1; - - while (left <= right) { - int mid = left + (right - left) / 2; - if (nums[mid] == target) { - return mid; - } else if (nums[mid]> target) { - right = mid - 1; - } else { - left = mid + 1; - } - } - return left; - } -} diff --git a/JAVA_LEETCODE_2024/solution70.java b/JAVA_LEETCODE_2024/solution70.java deleted file mode 100644 index 4ceb5f7..0000000 --- a/JAVA_LEETCODE_2024/solution70.java +++ /dev/null @@ -1,30 +0,0 @@ -import java.util.Scanner; - -public class solution70 { - /** - * 70. Climbing Stairs - * - * You are climbing a staircase. It takes n steps to reach the top. - * Each time you can either climb 1 or 2 steps. - * In how many distinct ways can you climb to the top? - */ - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - System.out.println(climbStairs(n)); - } - - public static int climbStairs(int n) { - // dp로 처리 - int[] answer = new int[n + 1]; - answer[0] = 1; - answer[1] = 1; - - for (int i = 2; i <= n; ++i) { - answer[i] = answer[i - 1] + answer[i - 2]; - } - - return answer[n]; - } - -} diff --git a/Python_BOJ_2021/1002.py b/Python_BOJ_2021/1002.py deleted file mode 100644 index 329dfb0..0000000 --- a/Python_BOJ_2021/1002.py +++ /dev/null @@ -1,23 +0,0 @@ -# 터렛 -import math - -T = int(input()) - -for _ in range(T): - x1, y1, r1, x2, y2, r2 = map(int, input().split()) - d = math.sqrt((x2-x1)**2 + (y2-y1)**2) - - if r2> r1: - r1, r2 = r2, r1 - if d == 0: - if r1 == r2: - print('-1') - else: - print('0') - else: - if r1 + r2 == d or r1 - r2 == d: - print('1') - elif r1 + r2> d and r1 - r2 < d: - print('2') - else: - print('0') diff --git a/Python_BOJ_2021/10026-bfs.py b/Python_BOJ_2021/10026-bfs.py deleted file mode 100644 index f862b74..0000000 --- a/Python_BOJ_2021/10026-bfs.py +++ /dev/null @@ -1,51 +0,0 @@ -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -graph = [list(input().upper()) for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(x, y, visited): - queue.append((x, y)) - - while queue: - x, y = queue.popleft() - - for i in range(4): - nx = x + dx[i] - ny = y + dy[i] - - if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny]: - if graph[nx][ny] == graph[x][y]: - queue.append((nx, ny)) - visited[nx][ny] = True - - -queue = deque() -visited = [[False] * n for _ in range(n)] -ans = 0 - -for i in range(n): - for j in range(n): - if not visited[i][j]: - bfs(i, j, visited) - ans += 1 - -queue = deque() -visited2 = [[False] * n for _ in range(n)] -ans_2 = 0 - -for i in range(n): - for j in range(n): - if graph[i][j] == 'G': - graph[i][j] = 'R' - -for i in range(n): - for j in range(n): - if not visited2[i][j]: - bfs(i, j, visited2) - ans_2 += 1 - -print(ans, ans_2) \ No newline at end of file diff --git a/Python_BOJ_2021/10026-dfs.py b/Python_BOJ_2021/10026-dfs.py deleted file mode 100644 index 6e0710e..0000000 --- a/Python_BOJ_2021/10026-dfs.py +++ /dev/null @@ -1,51 +0,0 @@ -# 적록색약 -import sys -sys.setrecursionlimit(10001) -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -graph = [list(input().upper()) for _ in range(n)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def dfs(x, y, type, visited): - visited[x][y] = True - - for i in range(4): - nx = x + dx[i] - ny = y + dy[i] - - if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny]: - if type == 0 and graph[nx][ny] == graph[x][y]: - dfs(nx, ny, 0, visited) - elif type == 1 and graph[nx][ny] == graph[x][y]: - dfs(nx, ny, 1, visited) - - -visited = [[False] * n for _ in range(n)] -ans = 0 - -for i in range(n): - for j in range(n): - if not visited[i][j]: - dfs(i, j, 0, visited) - ans += 1 - - -for i in range(n): - for j in range(n): - if graph[i][j] == 'G': - graph[i][j] = 'R' - - -visited2 = [[False] * n for _ in range(n)] -ans_2 = 0 - -for i in range(n): - for j in range(n): - if not visited2[i][j]: - dfs(i, j, 1, visited2) - ans_2 += 1 - -print(ans, ans_2) \ No newline at end of file diff --git a/Python_BOJ_2021/1003.py b/Python_BOJ_2021/1003.py deleted file mode 100644 index 358d908..0000000 --- a/Python_BOJ_2021/1003.py +++ /dev/null @@ -1,21 +0,0 @@ -# 피보나치 함수 -import sys -input = lambda : sys.stdin.readline().rstrip() - -def fibonacci_cnt(n): - zero_cnt = [1, 0] - one_cnt = [0, 1] - if n <= 1: - return - - for i in range(2, n + 1): - zero_cnt.append(zero_cnt[i - 1] + zero_cnt[i - 2]) - one_cnt.append(one_cnt[i - 1] + one_cnt[i - 2]) - - return zero_cnt, one_cnt - -zero_count, one_count = fibonacci_cnt(40) - -for _ in range(int(input())): - m = int(input()) - print(f'{zero_count[m]} {one_count[m]}') \ No newline at end of file diff --git a/Python_BOJ_2021/1009.py b/Python_BOJ_2021/1009.py deleted file mode 100644 index 5574a3a..0000000 --- a/Python_BOJ_2021/1009.py +++ /dev/null @@ -1,23 +0,0 @@ -# 분산 처리 -import sys -input = lambda :sys.stdin.readline().rstrip() - -list = [[], - [1], - [6, 2, 4, 8], - [1, 3, 9, 7], - [6, 4], - [5], - [6], - [1, 7, 9, 3], - [6, 8, 4, 2], - [1, 9]] -ans = [] - -for _ in range(int(input())): - a, b = map(int ,input().split()) - a = int(str(a)[-1]) - if a != 0: - print(list[a][b % len(list[a])]) - else: - print(10) \ No newline at end of file diff --git a/Python_BOJ_2021/1011.py b/Python_BOJ_2021/1011.py deleted file mode 100644 index dd00dca..0000000 --- a/Python_BOJ_2021/1011.py +++ /dev/null @@ -1,22 +0,0 @@ -# fly me to the Alpha Centauri -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - x, y = map(int, input().split()) - - lr = y - x - cnt = 1 - - while True: - if cnt ** 2 <= lr < (cnt + 1) ** 2: - break - cnt += 1 - - if cnt ** 2 == lr: - print(cnt * 2 - 1) - elif cnt ** 2 < lr <= cnt ** 2 + cnt: - print(cnt * 2) - else: - print(cnt * 2 + 1) - \ No newline at end of file diff --git a/Python_BOJ_2021/1012.py b/Python_BOJ_2021/1012.py deleted file mode 100644 index f703aa9..0000000 --- a/Python_BOJ_2021/1012.py +++ /dev/null @@ -1,38 +0,0 @@ -# 유기농 배추 - -import sys -sys.setrecursionlimit(100000) -input = lambda : sys.stdin.readline().rstrip() - -dx = [-1, 1, 0, 0] -dy = [0, 0, -1, 1] - - -def dfs(x, y): - visited[x][y] = True - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1 and not visited[nx][ny]: - dfs(nx, ny) - - -for _ in range(int(input())): - n, m, k = map(int, input().split()) - graph = [[0] * (m+1) for _ in range(n+1)] - visited = [[False] * (m+1) for _ in range(n+1)] - cnt = 0 - - for _ in range(k): - x, y = map(int, input().split()) - graph[x][y] = 1 - - for a in range(n): - for b in range(m): - if graph[a][b] == 1 and not visited[a][b]: - cnt += 1 - dfs(a, b) - - print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/1012_2.py b/Python_BOJ_2021/1012_2.py deleted file mode 100644 index dba92ca..0000000 --- a/Python_BOJ_2021/1012_2.py +++ /dev/null @@ -1,34 +0,0 @@ -# 유기농 배추 -import sys -sys.setrecursionlimit(1000001) -input = lambda : sys.stdin.readline().rstrip() -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def dfs(x, y): - visited[x][y] = 1 - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1 and not visited[nx][ny]: - dfs(nx, ny) - - -for _ in range(int(input())): - m, n, k = map(int, input().split()) - graph = [[0 for _ in range(m)] for _ in range(n)] - visited = [[0 for _ in range(m)] for _ in range(n)] - - for _ in range(k): - y, x = map(int, input().split()) - graph[x][y] = 1 - - ans = 0 - for i in range(n): - for j in range(m): - if graph[i][j] == 1 and not visited[i][j]: - ans += 1 - dfs(i, j) - - print(ans) diff --git a/Python_BOJ_2021/1012_3.py b/Python_BOJ_2021/1012_3.py deleted file mode 100644 index 8cd1b3a..0000000 --- a/Python_BOJ_2021/1012_3.py +++ /dev/null @@ -1,33 +0,0 @@ -# 유기농 배추 -import sys -sys.setrecursionlimit(10001) -input = lambda :sys.stdin.readline().rstrip() -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def dfs(x, y): - visited[x][y] = 1 - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1 and not visited[nx][ny]: - dfs(nx, ny) - - -for _ in range(int(input())): - m, n, k = map(int, input().split()) - graph = [[0 for _ in range(m)] for _ in range(n)] - visited = [[0 for _ in range(m)] for _ in range(n)] - - for _ in range(k): # 배추 좌표에 배추를 1로 표시 - y, x = map(int, input().split()) - graph[x][y] = 1 - - answer = 0 - for i in range(n): - for j in range(m): - if graph[i][j] == 1 and not visited[i][j]: - answer += 1 - dfs(i, j) - - print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/1012_4.py b/Python_BOJ_2021/1012_4.py deleted file mode 100644 index 0d709d7..0000000 --- a/Python_BOJ_2021/1012_4.py +++ /dev/null @@ -1,30 +0,0 @@ -# 유기농 배추 -import sys -sys.setrecursionlimit(1000001) -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def dfs(x, y): - visited[x][y] = True - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1 and not visited[nx][ny]: - dfs(nx, ny) - - -for _ in range(int(input())): - m, n, k = map(int, input().split()) - graph = [[0 for _ in range(m)] for _ in range(n)] - visited = [[False for _ in range(m)] for _ in range(n)] - for _ in range(k): - y, x = map(int, input().split()) - graph[x][y] = 1 - - cnt = 0 - for i in range(n): - for j in range(m): - if graph[i][j] == 1 and not visited[i][j]: - dfs(i, j) - cnt += 1 - print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/10157.py b/Python_BOJ_2021/10157.py deleted file mode 100644 index e153324..0000000 --- a/Python_BOJ_2021/10157.py +++ /dev/null @@ -1,27 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -c, r = map(int, input().split()) -k = int(input()) -graph = [[0] * c for _ in range(r)] - -if r * c < k: - print(0) - exit() - -dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1] -x, y, dir = r - 1, 0, 0 -cnt = 1 - -while cnt != k: - graph[x][y] = cnt - nx, ny = x + dx[dir], y + dy[dir] - - if nx < 0 or ny < 0 or nx>= r or ny>= c or graph[nx][ny] != 0: - dir += 1 - if dir == 4: dir = 0 - nx, ny = x + dx[dir], y + dy[dir] - - x, y, cnt = nx, ny , cnt + 1 - -print(f'{y + 1} {r - x}') \ No newline at end of file diff --git a/Python_BOJ_2021/10157_2.py b/Python_BOJ_2021/10157_2.py deleted file mode 100644 index cb3bc45..0000000 --- a/Python_BOJ_2021/10157_2.py +++ /dev/null @@ -1,28 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1] -C, R = map(int, input().split()) -K = int(input()) -graph = [[0] * C for _ in range(R)] - -x, y = R - 1, 0 -cnt, idx = 1, 0 - -if C * R < K: - print(0) - exit(0) - -while cnt != K: - graph[x][y] = cnt - nx, ny = x + dx[idx], y + dy[idx] - - if 0> nx or 0> ny or nx>= R or ny>= C or graph[nx][ny] != 0: - idx += 1 - if idx> 4: idx = 0 - nx, ny = x + dx[idx], y + dy[idx] - - x, y = nx, ny - cnt += 1 - -print(y + 1, R - x) \ No newline at end of file diff --git a/Python_BOJ_2021/10157_3.py b/Python_BOJ_2021/10157_3.py deleted file mode 100644 index 7372530..0000000 --- a/Python_BOJ_2021/10157_3.py +++ /dev/null @@ -1,23 +0,0 @@ -C, R = map(int, input().split()) -k = int(input()) -arr = [[0] * C for _ in range(R)] - -dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1] - -x, y = R - 1, 0 -cnt, d = 1, 0 - -if C * R < k: - print(0) - exit(0) - -while cnt != k: - arr[x][y] = cnt - nx, ny = x + dx[d], y + dy[d] - if arr[nx][ny] != 0 or 0> nx or 0> ny or nx>= R or ny>= C: - d = (d + 1) % 4 - nx, ny = x + dx[d], dy[d] - x, y = nx, ny - cnt += 1 - -print(y + 1, R - x) \ No newline at end of file diff --git a/Python_BOJ_2021/10158.py b/Python_BOJ_2021/10158.py deleted file mode 100644 index a80a1a7..0000000 --- a/Python_BOJ_2021/10158.py +++ /dev/null @@ -1,52 +0,0 @@ -# 개미 - -w, h = map(int, input().split()) -p, q = map(int, input().split()) -t = int(input()) - -a = (p + t) // w -b = (q + t) // h - -if a % 2 == 0: - x = (p + t) % w -else: - x = w - (p + t) % w - -if b % 2 == 0: - y = (q + t) % h -else: - y = h - (q + t) % h - -print(x, y) - - -# w, h = map(int, input().split()) -# p, q = map(int, input().split()) -# t = int(input()) -# -# dx, dy = [1, -1, -1, 1], [1, 1, -1, -1] -# cnt = 0 -# dir = 0 -# -# while True: -# if t == cnt: break; -# cnt += 1 -# new_p, new_q = p + dx[dir], q + dy[dir] -# -# if 0>= new_p or new_p>= w: # 왼쪽 오른쪽 벽에 부딫힐때 -# if dir == 0: dir = 1 -# elif dir == 1: dir = 0 -# elif dir == 2: dir = 3 -# elif dir == 3: dir = 2 -# -# if 0>= new_q or new_q>= h: # 아래 위 벽에 부딫힐때 -# if dir == 0: dir = 3 -# elif dir == 1: dir = 2 -# elif dir == 2: dir = 1 -# elif dir == 3: dir = 0 -# -# p, q = new_p, new_q -# -# print(p, q) - - diff --git a/Python_BOJ_2021/10162.py b/Python_BOJ_2021/10162.py deleted file mode 100644 index 5c11e09..0000000 --- a/Python_BOJ_2021/10162.py +++ /dev/null @@ -1,18 +0,0 @@ -# 전자레인지 -import sys -input = lambda : sys.stdin.readline().rstrip() - -t = int(input()) - -buttons = [300, 60, 10] -cnt = [0, 0, 0] - -for i in range(len(buttons)): - cnt[i] += t // buttons[i] - t %= buttons[i] - -if t % buttons[i] != 0: - print(-1) - -else: - print(f'{cnt[0]} {cnt[1]} {cnt[2]}') \ No newline at end of file diff --git a/Python_BOJ_2021/10173.py b/Python_BOJ_2021/10173.py deleted file mode 100644 index 37bc852..0000000 --- a/Python_BOJ_2021/10173.py +++ /dev/null @@ -1,19 +0,0 @@ -# 니모를 찾아서 -name = [['n', 'N'], ['e', 'E'], ['m', 'M'], ['o', 'O']] - -while True: - s = input() - if s == 'EOI': - break - cnt, j = 0, 0 - while j < len(s): - if s[j] in name[cnt]: - cnt += 1 - if cnt == 4: - print('Found') - break - else: - cnt = 0 - j += 1 - else: - print('Missing') \ No newline at end of file diff --git a/Python_BOJ_2021/10174.py b/Python_BOJ_2021/10174.py deleted file mode 100644 index bbd76a2..0000000 --- a/Python_BOJ_2021/10174.py +++ /dev/null @@ -1,7 +0,0 @@ -# 팰린드롬 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = list(map(str, input().lower())) - print('Yes' if s[::] == s[::-1] else 'No') \ No newline at end of file diff --git a/Python_BOJ_2021/1018.py b/Python_BOJ_2021/1018.py deleted file mode 100644 index 292b2b5..0000000 --- a/Python_BOJ_2021/1018.py +++ /dev/null @@ -1,40 +0,0 @@ -# 체스판 다시 칠하기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -arr = [list(input()) for _ in range(n)] - -min_num = None - -for i in range(n-7): - for j in range(m-7): - num1, num2 = 0, 0 - - for a in range(i, i+8): - for b in range(j, j+8): - if (a+b-i-j) % 2 == 0: - if arr[a][b] == 'B': - num1 += 1 - else: - if arr[a][b] == 'W': - num1 += 1 - - for a in range(i, i+8): - for b in range(j, j+8): - if (a+b-i-j) % 2 == 0: - if arr[a][b] == 'W': - num2 += 1 - - else: - if arr[a][b] == 'B': - num2 += 1 - - change = num1 if num1 < num2 else num2 - if min_num is None: - min_num = change - - else: - min_num = change if min_num> change else min_num - -print(min_num) \ No newline at end of file diff --git a/Python_BOJ_2021/1021.py b/Python_BOJ_2021/1021.py deleted file mode 100644 index efe8156..0000000 --- a/Python_BOJ_2021/1021.py +++ /dev/null @@ -1,38 +0,0 @@ -# 회전하는 큐 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -N, M = map(int, input().split()) -arr = deque(i+1 for i in range(N)) -target = deque(map(int, input().split())) - -cnt = 0 -while target: - t = target.popleft() - idx = 0 - for i in range(len(arr)): - if arr[i] == t: - idx = i - - if 0 < idx <= len(arr) // 2: # arr배열의 왼쪽에 있다면 - while idx: - arr.append(arr.popleft()) - cnt += 1 - idx -= 1 - if idx == -1: - idx = len(arr) - 1 - if arr[0] == t: - arr.popleft() - elif len(arr) // 2 < idx < len(arr): # arr배열의 오른쪽에 있다면 - while idx: - arr.appendleft(arr.pop()) - cnt += 1 - idx += 1 - if idx == len(arr): - idx = 0 - if arr[0] == t: - arr.popleft() - else: - arr.popleft() -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/10211.py b/Python_BOJ_2021/10211.py deleted file mode 100644 index cb10e9c..0000000 --- a/Python_BOJ_2021/10211.py +++ /dev/null @@ -1,11 +0,0 @@ -# Maximum Subarray - -for _ in range(int(input())): - n = int(input()) - arr = list(map(int, input().split())) - dp = [0] * n - dp[0] = arr[0] - - for i in range(1, n): - dp[i] = max(dp[i - 1] + arr[i], arr[i]) - print(max(dp)) \ No newline at end of file diff --git a/Python_BOJ_2021/10250.py b/Python_BOJ_2021/10250.py deleted file mode 100644 index 8a13144..0000000 --- a/Python_BOJ_2021/10250.py +++ /dev/null @@ -1,22 +0,0 @@ -# ACM 호텔 - -T = int(input()) - -for _ in range(T): - H, W, N = map(int, input().split()) - count = 0 - - for j in range(1, W+1): - for i in range(1, H+1): - count += 1 - - if N == count: - if j < 10: - print(f'{i}0{j}') - else: - print(f'{i}{j}') - - - - - diff --git a/Python_BOJ_2021/10282.py b/Python_BOJ_2021/10282.py deleted file mode 100644 index c6d9bbf..0000000 --- a/Python_BOJ_2021/10282.py +++ /dev/null @@ -1,38 +0,0 @@ -# 해킹 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - -def dijikstra(start): - queue = list() - heapq.heappush(queue, (0, start)) - distance[start] = 0 - - while queue: - cost, current = heapq.heappop(queue) - if distance[current] < cost: continue - for i in graph[current]: - cost2 = cost + i[1] - if cost2 < distance[i[0]]: - distance[i[0]] = cost2 - heapq.heappush(queue, (cost2, i[0])) - - -for _ in range(int(input())): - n, d, c = map(int, input().split()) - graph = [[] for _ in range(n + 1)] - distance = [INF] * (n + 1) - - for _ in range(d): - a, b, s = map(int, input().split()) - graph[b].append([a, s]) - - dijikstra(c) - cnt, ans = 0, 0 - - for i in range(1, len(distance)): - if distance[i] != INF: - cnt += 1 - ans = max(ans, distance[i]) - - print(cnt, ans) diff --git a/Python_BOJ_2021/1032.py b/Python_BOJ_2021/1032.py deleted file mode 100644 index a3a94a1..0000000 --- a/Python_BOJ_2021/1032.py +++ /dev/null @@ -1,14 +0,0 @@ -# 명령 프롬프트 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -a = list(input()) - -for i in range(n-1): - b = list(input()) - for j in range(len(a)): - if a[j] != b[j]: - a[j] = '?' - -print(''.join(a)) diff --git a/Python_BOJ_2021/1041.py b/Python_BOJ_2021/1041.py deleted file mode 100644 index 1770fba..0000000 --- a/Python_BOJ_2021/1041.py +++ /dev/null @@ -1,16 +0,0 @@ -# 주사위 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -a, b, c, d, e, f = map(int, input().split()) - -if n == 1: - print(sum([a, b, c, d, e, f]) - max([a, b, c, d, e, f])) - -else: - three_cnt = min(list(map(sum, [[a, b, c], [a, b, d], [a, e, d], [a, e, c], [f, b, c], [f, b, d], [f, e, c], [f, e, d]]))) - two_cnt = min(list(map(sum, [[a, b], [a, c], [a, d], [a, e], [b, c], [b, d], [e, c], [e, d], [f, b], [f, c], [f, e], [f, d]]))) - one_cnt = min([a, b, c, d, e, f]) - - print(three_cnt * 4 + two_cnt * (8 * n - 12) + one_cnt * ((n - 2) * (5 * n - 6))) \ No newline at end of file diff --git a/Python_BOJ_2021/10451.py b/Python_BOJ_2021/10451.py deleted file mode 100644 index f2bdcd1..0000000 --- a/Python_BOJ_2021/10451.py +++ /dev/null @@ -1,23 +0,0 @@ -# 순열 사이클 -import sys -input = lambda :sys.stdin.readline().rstrip() -sys.setrecursionlimit(1000001) - - -def dfs(i): - visited[i] = 1 - a = arr[i] - if not visited[a]: - dfs(a) - - -for _ in range(int(input())): - n = int(input()) - arr = [0] + list(map(int, input().split())) - visited = [1] + [0] * n - ans = 0 - for i in range(1, n + 1): - if not visited[i]: - dfs(i) - ans += 1 - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/10552.py b/Python_BOJ_2021/10552.py deleted file mode 100644 index 5a153a6..0000000 --- a/Python_BOJ_2021/10552.py +++ /dev/null @@ -1,33 +0,0 @@ -# DOM -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -n, m, p = map(int, input().split()) -graph = [[] for _ in range(m + 1)] -visited = [[] for _ in range(m + 1)] - -for _ in range(n): - a, b = map(int, input().split()) - graph[b].append(a) - visited[b].append(0) - - -def bfs(ch): - queue = deque() - queue.append(ch) - cnt = 0 - while queue: - cur = queue.popleft() - for i in range(len(graph[cur])): - if graph[cur][i] != 0 and visited[cur][i] == 0: - queue.append(graph[cur][i]) - visited[cur][i] = 1 - cnt += 1 - break - if visited[cur][i] == 1: - return -1 - return cnt - - -print(bfs(p)) \ No newline at end of file diff --git a/Python_BOJ_2021/10610.py b/Python_BOJ_2021/10610.py deleted file mode 100644 index 2445b79..0000000 --- a/Python_BOJ_2021/10610.py +++ /dev/null @@ -1,13 +0,0 @@ -# 30 - -n = list(input()) -n.sort(reverse=True) -sum = 0 - -for i in n: - sum += int(i) - -if sum % 3 != 0 or "0" not in n: - print(-1) -else: - print(''.join(n)) \ No newline at end of file diff --git a/Python_BOJ_2021/1062.py b/Python_BOJ_2021/1062.py deleted file mode 100644 index b65b605..0000000 --- a/Python_BOJ_2021/1062.py +++ /dev/null @@ -1,60 +0,0 @@ -# 가르침 - 못 풀겠다 시간초과 ᅳ,.ᅳ 자바로 풀었음 -import sys -sys.setrecursionlimit(100001) -input = lambda : sys.stdin.readline().rstrip() - - -def dfs(idx, cnt): - global max_v, global_flag - - if max_v == n: - return - - if cnt == k-5: - global_flag, ans = 1, 0 - for i in range(n): - flag = 0 - for j in range(len(texts[i])): - if D[ord(texts[i][j]) - 97]: - pass - else: - flag = 1 - break - if flag == 0: - ans += 1 - if ans> max_v: - max_v = ans - return - - for i in range(idx, len(l)): - if not D[ord(l[i]) - 97]: - cnt += 1 - D[ord(l[i]) - 97] = True - dfs(i, cnt) - cnt -= 1 - D[ord(l[i]) - 97] = False - if global_flag == 0: - max_v = n - - -n, k = map(int, input().split()) - -if k < 5: - print(0) -else: - global_flag = 0 - D = [False] * 26 - D[ord('a') - 97], D[ord('c') - 97], D[ord('t') - 97], D[ord('i') - 97], D[ord('n') - 97] = True, True, True, True, True - l, texts = list(), list() - max_v = 0 - - for _ in range(n): - text = input() - text = text[4:len(text) - 4] - for i in range(len(text)): - if not D[ord(text[i]) - 97] and text[i] not in l: - l.append(text[i]) - texts.append(text) - - dfs(0, 0) - print(max_v) \ No newline at end of file diff --git a/Python_BOJ_2021/1063.py b/Python_BOJ_2021/1063.py deleted file mode 100644 index 156bb56..0000000 --- a/Python_BOJ_2021/1063.py +++ /dev/null @@ -1,29 +0,0 @@ -# 킹 -import sys -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [1, -1, 0, 0, 1, -1, 1, -1], [0, 0, -1, 1, 1, 1, -1, -1] -move = ['R', 'L', 'B', 'T', 'RT', 'LT', 'RB', 'LB'] -king, stone, n = map(str, input().split()) - -# king 위치 체크 -king_x, king_y = ord(king[0]) - ord('A'), int(king[1]) -# stone 위치 체크 -stone_x, stone_y = ord(stone[0]) - ord('A'), int(stone[1]) - -# 커맨드 받기 -for _ in range(int(n)): - d = move.index(input()) - nx, ny = king_x + dx[d], king_y + dy[d] - - if nx < 0 or ny < 1 or nx> 7 or ny> 8: - continue - if nx == stone_x and ny == stone_y: - stone_nx, stone_ny = stone_x + dx[d], stone_y + dy[d] - if stone_nx < 0 or stone_ny < 1 or stone_nx> 7 or stone_ny> 8: - continue - stone_x, stone_y = stone_nx, stone_ny - king_x, king_y = nx, ny - -print(f'{chr(king_x + ord("A"))}{king_y}') -print(f'{chr(stone_x + ord("A"))}{stone_y}') \ No newline at end of file diff --git a/Python_BOJ_2021/1065.py b/Python_BOJ_2021/1065.py deleted file mode 100644 index 670f5b3..0000000 --- a/Python_BOJ_2021/1065.py +++ /dev/null @@ -1,20 +0,0 @@ -# 한수 - -ans = 0 - -def Hansu(x): - global ans - if x//100 - x%100 //10 is x%100 // 10 - x%10: - ans += 1 - return ans - -a = int(input()) - -for i in range(1, a+1): - if i < 100: - ans += 1 - else: - Hansu(i) - -print(ans) - diff --git a/Python_BOJ_2021/1068.py b/Python_BOJ_2021/1068.py deleted file mode 100644 index daf3679..0000000 --- a/Python_BOJ_2021/1068.py +++ /dev/null @@ -1,42 +0,0 @@ -# 트리 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -node = list(map(int, input().split())) -delete_node = int(input()) - -graph = [[0] * n for _ in range(n)] -visited = [0] * n -cnt = 0 - -for i in range(n): - if node[i] != -1: - graph[i][node[i]] = 1 - graph[node[i]][i] = 1 - else: - root = i - -for i in range(n): - graph[i][delete_node] = 0 - graph[delete_node][i] = 0 - - -def dfs(node): - global cnt - switch = 0 - visited[node] = 1 - for i in range(n): - if not visited[i] and graph[node][i]: - switch = 1 - dfs(i) - if not switch: - cnt += 1 - - -dfs(root) - -if delete_node == root: - print(0) -else: - print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/1076.py b/Python_BOJ_2021/1076.py deleted file mode 100644 index 8df3db7..0000000 --- a/Python_BOJ_2021/1076.py +++ /dev/null @@ -1,23 +0,0 @@ -# 저항 -import sys -input = lambda :sys.stdin.readline().rstrip() - -arr = [] -regist = ['black', 'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'violet', 'grey', 'white'] -for _ in range(3): - s = input() - arr.append(s) - -tmp = '' -tmp2 = 0 - -for i in range(2): - for j in range(len(regist)): - if regist[j] == arr[i]: - tmp += str(j) - -for i in range(len(regist)): - if arr[-1] == regist[i]: - tmp2 = pow(10, i) - -print(int(tmp) * tmp2) \ No newline at end of file diff --git a/Python_BOJ_2021/10769.py b/Python_BOJ_2021/10769.py deleted file mode 100644 index c4ac4da..0000000 --- a/Python_BOJ_2021/10769.py +++ /dev/null @@ -1,11 +0,0 @@ -# 행복한지 슬픈지 -import sys -s = sys.stdin.readline().rstrip() - -hap = s.count(":-)") -sad = s.count(":-(") - -if not hap and not sad: print("none") -elif hap == sad: print("unsure") -elif hap> sad: print("happy") -elif hap < sad: print("sad") \ No newline at end of file diff --git a/Python_BOJ_2021/10773.py b/Python_BOJ_2021/10773.py deleted file mode 100644 index c364f51..0000000 --- a/Python_BOJ_2021/10773.py +++ /dev/null @@ -1,13 +0,0 @@ -# 제로 -import sys -input = lambda :sys.stdin.readline().rstrip() - -arr = list() -for _ in range(int(input())): - n = int(input()) - if n == 0: - arr.pop() - elif n != 0: - arr.append(n) - -print(sum(arr)) \ No newline at end of file diff --git a/Python_BOJ_2021/10779.py b/Python_BOJ_2021/10779.py deleted file mode 100644 index dc5ec8b..0000000 --- a/Python_BOJ_2021/10779.py +++ /dev/null @@ -1,20 +0,0 @@ -# 쇠막대기 -import sys -input = lambda : sys.stdin.readline().rstrip() -q = list(input()) - -ans = 0 -stack = [] - -for i in range(len(q)): - if q[i] == '(': - stack.append(q[i]) - - else: - if q[i - 1] == '(': - stack.pop() - ans += len(stack) - else: - stack.pop() - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/10798.py b/Python_BOJ_2021/10798.py deleted file mode 100644 index b4a58a1..0000000 --- a/Python_BOJ_2021/10798.py +++ /dev/null @@ -1,21 +0,0 @@ -# 세로읽기 -tmp = [] -max_len = 0 - -for _ in range(5): - word = input() - tmp.append(list(word)) - - if len(word)> max_len: - max_len = len(word) - -answer = '' -i = 0 - -while i < max_len: - for j in range(5): - if len(tmp[j]) != 0: - answer += tmp[j].pop(0) - i += 1 - -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/1080.py b/Python_BOJ_2021/1080.py deleted file mode 100644 index 91d19b7..0000000 --- a/Python_BOJ_2021/1080.py +++ /dev/null @@ -1,50 +0,0 @@ -# 행렬 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -A = [list(map(int, input())) for _ in range(n)] -B = [list(map(int, input())) for _ in range(n)] - -cnt = 0 - -''' -0000 -0010 -0000 - -1110 -1100 -1110 - -1001 -1011 -1001 - -''' - -def check(): - for i in range(n): - for j in range(m): - if A[i][j] != B[i][j]: - return False - - return True - - -def change(x, y): - for i in range(x, x+3): - for j in range(y, y+3): - A[i][j] = 1- A[i][j] - - -for i in range(0, n-2): - for j in range(0, m-2): - if A[i][j] != B[i][j]: - cnt += 1 - change(i, j) - -if check(): - print(cnt) -else: - print(-1) \ No newline at end of file diff --git a/Python_BOJ_2021/10809.py b/Python_BOJ_2021/10809.py deleted file mode 100644 index 6ce0fad..0000000 --- a/Python_BOJ_2021/10809.py +++ /dev/null @@ -1,3 +0,0 @@ -# 알파벳 찾기 - -print(*map(input().find, map(chr, range(97,123))), sep=' ') diff --git a/Python_BOJ_2021/10814.py b/Python_BOJ_2021/10814.py deleted file mode 100644 index cd56c68..0000000 --- a/Python_BOJ_2021/10814.py +++ /dev/null @@ -1,14 +0,0 @@ -# 나이순 정렬 - -N = int(input()) - -arr = [] - -for i in range(N): - input_data = input().split() - arr.append((int(input_data[0]), input_data[1])) - -arr = sorted(arr, key=lambda student: student[0]) - -for i in arr: - print(*i) \ No newline at end of file diff --git a/Python_BOJ_2021/10815.py b/Python_BOJ_2021/10815.py deleted file mode 100644 index 9b0998b..0000000 --- a/Python_BOJ_2021/10815.py +++ /dev/null @@ -1,18 +0,0 @@ -# 숫자 카드 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = set(map(int, input().split())) - -m = int(input()) -arr2 = list(map(int, input().split())) - -for i in range(len(arr2)): - if arr2[i] in arr: - arr2[i] = 1 - else: - arr2[i] = 0 - -for i in range(len(arr2)): - print(arr2[i], end=' ') \ No newline at end of file diff --git a/Python_BOJ_2021/10816.py b/Python_BOJ_2021/10816.py deleted file mode 100644 index b62c520..0000000 --- a/Python_BOJ_2021/10816.py +++ /dev/null @@ -1,21 +0,0 @@ -# 숫자 카드2 - -n = int(input()) -cards = list(map(int, input().split())) - -m = int(input()) -list = list(map(int, input().split())) - -ans = {} - -for i in cards: - if i not in ans: - ans[i] = 1 - else: - ans[i] += 1 - -for j in list: - if j in ans: - print(ans[j], end=' ') - else: - print(0, end=' ') \ No newline at end of file diff --git a/Python_BOJ_2021/10818.py b/Python_BOJ_2021/10818.py deleted file mode 100644 index 748087c..0000000 --- a/Python_BOJ_2021/10818.py +++ /dev/null @@ -1,4 +0,0 @@ -n = int(input()) -numbers = list(map(int,input().split())) - -print("{} {}".format(min(numbers), max(numbers))) \ No newline at end of file diff --git a/Python_BOJ_2021/10819.py b/Python_BOJ_2021/10819.py deleted file mode 100644 index 99efa68..0000000 --- a/Python_BOJ_2021/10819.py +++ /dev/null @@ -1,17 +0,0 @@ -from itertools import permutations -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -input = list(map(int, input().split())) - -ans = 0 -for i in permutations(input): - tmp = list(i) - max_ = 0 - for i in range(0, len(tmp) - 1): - max_ += abs(tmp[i] - tmp[i + 1]) - if max_> ans: - ans = max_ - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/10821.py b/Python_BOJ_2021/10821.py deleted file mode 100644 index 82e48b1..0000000 --- a/Python_BOJ_2021/10821.py +++ /dev/null @@ -1,2 +0,0 @@ -# 정수의 개수 -print(len(list(map(int, input().split(','))))) \ No newline at end of file diff --git a/Python_BOJ_2021/10823.py b/Python_BOJ_2021/10823.py deleted file mode 100644 index 7ac9b0a..0000000 --- a/Python_BOJ_2021/10823.py +++ /dev/null @@ -1,8 +0,0 @@ -# 더하기 2 -s = '' -while True: - try: - s += input().strip() - except: - break -print(sum(map(int, s.split(',')))) diff --git a/Python_BOJ_2021/10828.py b/Python_BOJ_2021/10828.py deleted file mode 100644 index 2e728e0..0000000 --- a/Python_BOJ_2021/10828.py +++ /dev/null @@ -1,21 +0,0 @@ -# 스택 -import sys -input = lambda : sys.stdin.readline().rstrip() - -stack = list() -for _ in range(int(input())): - cmd = input().split() - - if cmd[0] == 'push': - stack.append(int(cmd[1])) - elif cmd[0] == 'pop': - if len(stack) == 0: print(-1) - else: print(stack.pop()) - elif cmd[0] == 'size': - print(len(stack)) - elif cmd[0] == 'empty': - if len(stack) == 0: print(1) - else: print(0) - elif cmd[0] == 'top': - if len(stack) == 0: print(-1) - else: print(stack[-1]) diff --git a/Python_BOJ_2021/10829.py b/Python_BOJ_2021/10829.py deleted file mode 100644 index 905f6ab..0000000 --- a/Python_BOJ_2021/10829.py +++ /dev/null @@ -1,18 +0,0 @@ -# 이진수 변환 -import sys -n = int(sys.stdin.readline().rstrip()) -answer = '' - - -def recursive(n): - global answer - - if n == 1: - answer += str(n) - print(answer[::-1]) - return - answer += str(n % 2) - recursive(n // 2) - - -recursive(n) \ No newline at end of file diff --git a/Python_BOJ_2021/10844.py b/Python_BOJ_2021/10844.py deleted file mode 100644 index 90a74d4..0000000 --- a/Python_BOJ_2021/10844.py +++ /dev/null @@ -1,18 +0,0 @@ -# 쉬운 계단 수 -import sys -n = int(sys.stdin.readline().rstrip()) - -dp = [[-1] * 10 for _ in range(n)] - -dp[0] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - -for level in range(1, n): - for idx in range(0, 10): - if idx == 0: - dp[level][idx] = dp[level-1][1] - elif idx == 9: - dp[level][idx] = dp[level-1][8] - else: - dp[level][idx] = dp[level-1][idx-1] + dp[level-1][idx+1] - -print(sum(dp[n-1][1:]) % 1000000000) \ No newline at end of file diff --git a/Python_BOJ_2021/1085.py b/Python_BOJ_2021/1085.py deleted file mode 100644 index bf48f51..0000000 --- a/Python_BOJ_2021/1085.py +++ /dev/null @@ -1,8 +0,0 @@ -# 직사각형에서 탈출 - -x, y, w, h = list(map(int, input().split())) - -a = abs(h-y) -b = abs(w-x) - -print(min(a,b,x,y)) diff --git a/Python_BOJ_2021/10866.py b/Python_BOJ_2021/10866.py deleted file mode 100644 index 341c3d0..0000000 --- a/Python_BOJ_2021/10866.py +++ /dev/null @@ -1,30 +0,0 @@ -# 덱 -from collections import deque -import sys -input = lambda : sys.stdin.readline().rstrip() - -queue = deque() -for _ in range(int(input())): - cmd = input().split() - - if cmd[0] == 'push_front': - queue.appendleft(int(cmd[1])) - if cmd[0] == 'push_back': - queue.append(int(cmd[1])) - elif cmd[0] == 'pop_front': - if len(queue) == 0: print(-1) - else: print(queue.popleft()) - elif cmd[0] == 'pop_back': - if len(queue) == 0: print(-1) - else: print(queue.pop()) - elif cmd[0] == 'size': - print(len(queue)) - elif cmd[0] == 'empty': - if len(queue) == 0: print(1) - else: print(0) - elif cmd[0] == 'front': - if len(queue) == 0: print(-1) - else: print(queue[0]) - elif cmd[0] == 'back': - if len(queue) == 0: print(-1) - else: print(queue[-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/10870.py b/Python_BOJ_2021/10870.py deleted file mode 100644 index 68e73ec..0000000 --- a/Python_BOJ_2021/10870.py +++ /dev/null @@ -1,12 +0,0 @@ -# 피보나치 수5 - -def Fibonacci(n): - if n == 0: - return 0 - elif n == 1: - return 1 - else: - return Fibonacci(n-1) + Fibonacci(n-2) - -n = int(input()) -print(Fibonacci(n)) \ No newline at end of file diff --git a/Python_BOJ_2021/10872.py b/Python_BOJ_2021/10872.py deleted file mode 100644 index bde44d5..0000000 --- a/Python_BOJ_2021/10872.py +++ /dev/null @@ -1,10 +0,0 @@ -#팩토리얼 - -def pactorial(n): - if n <= 1: - return 1 - else: - return n * pactorial(n-1) - -n = int(input()) -print(pactorial(n)) \ No newline at end of file diff --git a/Python_BOJ_2021/10942.py b/Python_BOJ_2021/10942.py deleted file mode 100644 index 85d2440..0000000 --- a/Python_BOJ_2021/10942.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys -sys.setrecursionlimit(100001) -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) -dp = [[-1] * n for _ in range(n)] - - -def func(start, end): - if start>= end: return 1 - if dp[start][end] != -1: return dp[start][end] - if arr[start] != arr[end]: return 0 - dp[start][end] = func(start + 1, end - 1) - return dp[start][end] - - -for i in range(int(input())): - x, y = map(int, input().split()) - print(func(x - 1, y - 1)) \ No newline at end of file diff --git a/Python_BOJ_2021/10972.py b/Python_BOJ_2021/10972.py deleted file mode 100644 index 8aa0158..0000000 --- a/Python_BOJ_2021/10972.py +++ /dev/null @@ -1,22 +0,0 @@ -# 다음 순열 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) - -x = 0 - -for i in range(n - 1, 0, -1): - if arr[i - 1] < arr[i]: - x = i - 1 - break - -for i in range(n - 1, 0, -1): - if arr[x] < arr[i]: - arr[x], arr[i] = arr[i], arr[x] - arr = arr[:x + 1] + sorted(arr[x + 1:]) - print(*arr) - exit() - -print(-1) \ No newline at end of file diff --git a/Python_BOJ_2021/10987.py b/Python_BOJ_2021/10987.py deleted file mode 100644 index 705514c..0000000 --- a/Python_BOJ_2021/10987.py +++ /dev/null @@ -1,14 +0,0 @@ -# 모음의 개수 -import sys - -s = sys.stdin.readline().rstrip() -a = ['a', 'e', 'i', 'o', 'u'] - -ans = 0 - -for i in range(len(s)): - for j in a: - if s[i] == j: - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/10988.py b/Python_BOJ_2021/10988.py deleted file mode 100644 index 8b4c71a..0000000 --- a/Python_BOJ_2021/10988.py +++ /dev/null @@ -1,11 +0,0 @@ -# 팰린드롬인지 확인하기 -s = input() -r = list() - -for i in range(len(s)-1, -1, -1): - r.append(s[i]) - -if s == ''.join(r): - print(1) -else: - print(0) diff --git a/Python_BOJ_2021/10989.py b/Python_BOJ_2021/10989.py deleted file mode 100644 index 4b7ec7a..0000000 --- a/Python_BOJ_2021/10989.py +++ /dev/null @@ -1,13 +0,0 @@ -# 수 정렬하기 3 - 계수정렬 -import sys - -n = int(sys.stdin.readline()) -counts = [0] * 10001 - -for i in range(n): - tmp = int(sys.stdin.readline()) - counts[tmp] += 1 - -for i in range(len(counts)): - for j in range(counts[i]): - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/10996.py b/Python_BOJ_2021/10996.py deleted file mode 100644 index 108e184..0000000 --- a/Python_BOJ_2021/10996.py +++ /dev/null @@ -1,7 +0,0 @@ -n = int(input()) - -for i in range(1, 2 * n + 1): - if i % 2 != 0: - print('*' + ((n-1)//2 * (" "+"*"))) - else: - print(' '+ (n//2) * ("*"+" ")) \ No newline at end of file diff --git a/Python_BOJ_2021/1100.py b/Python_BOJ_2021/1100.py deleted file mode 100644 index 10f3c78..0000000 --- a/Python_BOJ_2021/1100.py +++ /dev/null @@ -1,15 +0,0 @@ -# 하얀 칸 -import sys -input = lambda :sys.stdin.readline().rstrip() - -graph = [list(input()) for _ in range(8)] -ans = 0 -for i in range(8): - for j in range(8): - if i % 2 == 0 and j % 2 == 0: - if graph[i][j] == 'F': ans += 1 - - if i % 2 == 1 and j % 2 == 1: - if graph[i][j] == 'F': ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11000.py b/Python_BOJ_2021/11000.py deleted file mode 100644 index 6438aef..0000000 --- a/Python_BOJ_2021/11000.py +++ /dev/null @@ -1,17 +0,0 @@ -# 강의실 배정 -import sys, heapq -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -a = [list(map(int, input().split())) for _ in range(n)] -arr = sorted(a, key=lambda x: x[0]) - -queue = list() -heapq.heappush(queue, arr[0][1]) - -for c in arr[1:]: - if c[0]>= queue[0]: - heapq.heappop(queue) - heapq.heappush(queue, c[1]) - -print(len(queue)) \ No newline at end of file diff --git a/Python_BOJ_2021/11004.py b/Python_BOJ_2021/11004.py deleted file mode 100644 index 8c29bf1..0000000 --- a/Python_BOJ_2021/11004.py +++ /dev/null @@ -1,7 +0,0 @@ -# K번째 수 - -n, k = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -print(arr[k - 1]) - diff --git a/Python_BOJ_2021/11024.py b/Python_BOJ_2021/11024.py deleted file mode 100644 index bd43f1c..0000000 --- a/Python_BOJ_2021/11024.py +++ /dev/null @@ -1,7 +0,0 @@ -# 더하기 4 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - arr = list(map(int, input().split())) - print(sum(arr)) \ No newline at end of file diff --git a/Python_BOJ_2021/11047.py b/Python_BOJ_2021/11047.py deleted file mode 100644 index f9eae77..0000000 --- a/Python_BOJ_2021/11047.py +++ /dev/null @@ -1,18 +0,0 @@ -# 동전 0 - -N, K = map(int, input().split()) - -pouch = [] -cnt = 0 - -for _ in range(N): - coin = int(input()) - pouch.append(coin) - -pouch.sort(reverse=True) - -for i in pouch: - cnt += K // i - K = K % i - -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/1105.py b/Python_BOJ_2021/1105.py deleted file mode 100644 index 0b8cb45..0000000 --- a/Python_BOJ_2021/1105.py +++ /dev/null @@ -1,15 +0,0 @@ -# 팔 -A, B = map(str, input().split(' ')) - -ret = 0 - -if len(A) != len(B): - print(0) - -for i in range(len(A)): - if A[i] == B[i]: - if A[i] == '8': - ret += 1 - else: - break -print(ret) \ No newline at end of file diff --git a/Python_BOJ_2021/11053.py b/Python_BOJ_2021/11053.py deleted file mode 100644 index f091b18..0000000 --- a/Python_BOJ_2021/11053.py +++ /dev/null @@ -1,20 +0,0 @@ -# 가장 긴 증가하는 부분 수열 - -import sys -from bisect import bisect_left - -A = int(sys.stdin.readline().rstrip()) -arr = list(map(int, sys.stdin.readline().rstrip().split())) - -dp = [] - -for i in arr: - bin_res = bisect_left(dp, i) - - if len(dp) <= bin_res: - dp.append(i) - - else: - dp[bin_res] = i - -print(len(dp)) \ No newline at end of file diff --git a/Python_BOJ_2021/11054.py b/Python_BOJ_2021/11054.py deleted file mode 100644 index a3071b0..0000000 --- a/Python_BOJ_2021/11054.py +++ /dev/null @@ -1,34 +0,0 @@ -# 가장 긴 바이토닉 부분 수열 - -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) - -dp1 = [1] * n -dp2 = [1] * n -ans = [0] * n - -def up_side(n): - for i in range(n): - for j in range(i+1, n): - if arr[i] < arr[j]: - dp1[j] = max(dp1[i] + 1, dp1[j]) - return dp1 - -def down_side(n): - for i in range(n-1, -1, -1): - for j in range(i-1, -1, -1): - if arr[i] < arr[j]: - dp2[j] = max(dp2[i] + 1, dp2[j]) - return dp2 - -up_side(n) -down_side(n) - -for i in range(n): - ans[i] = dp1[i] + dp2[i] -1 - - -print(max(ans)) diff --git a/Python_BOJ_2021/11055.py b/Python_BOJ_2021/11055.py deleted file mode 100644 index 87eaa96..0000000 --- a/Python_BOJ_2021/11055.py +++ /dev/null @@ -1,14 +0,0 @@ -# 가장 큰 증가 부분 수열 -# 27687512 hoijae0194 11055 맞았습니다!! 28776 180 Python 3 / 수정 217 -N = int(input()) -A = list(map(int, input().split())) -dp = [0] * N - -for i in range(N): - tmp = 0 - for j in range(i): - if A[i]> A[j]: - tmp = max(tmp, dp[j]) - dp[i] = tmp + A[i] - -print(max(dp)) \ No newline at end of file diff --git a/Python_BOJ_2021/11098.py b/Python_BOJ_2021/11098.py deleted file mode 100644 index be1960d..0000000 --- a/Python_BOJ_2021/11098.py +++ /dev/null @@ -1,16 +0,0 @@ -# 첼시를 도와줘 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - max_price, max_name = 0, '' - - for i in range(int(input())): - price, name = input().split() - price = int(price) - - if price> max_price: - max_price = price - max_name = name - - print(max_name) \ No newline at end of file diff --git a/Python_BOJ_2021/1120.py b/Python_BOJ_2021/1120.py deleted file mode 100644 index 22c063b..0000000 --- a/Python_BOJ_2021/1120.py +++ /dev/null @@ -1,16 +0,0 @@ -# 문자열 - -x, y = input().split() -y = list(y) - -max_cnt = 0 - -while len(x) <= len(y): - cnt = 0 - for i in range(len(x)): - if x[i] == y[i]: - cnt += 1 - max_cnt = max(max_cnt, cnt) - del y[0] - -print(len(x) - max_cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/11256.py b/Python_BOJ_2021/11256.py deleted file mode 100644 index dd9e2e9..0000000 --- a/Python_BOJ_2021/11256.py +++ /dev/null @@ -1,18 +0,0 @@ -# 사탕 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - j, n = map(int, input().split()) - arr = [list(map(int, input().split())) for _ in range(n)] - - for i in range(len(arr)): - arr[i] = arr[i][0] * arr[i][1] - arr.sort(reverse=True) - - ans = 0 - for i in arr: - j -= i - ans += 1 - if j <= 0: break - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11279.py b/Python_BOJ_2021/11279.py deleted file mode 100644 index aec3ed2..0000000 --- a/Python_BOJ_2021/11279.py +++ /dev/null @@ -1,14 +0,0 @@ -# 최대 힙 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -arr = [] -for _ in range(int(input())): - a = int(input()) - if a == 0: - if len(arr) == 0: - print(0) - else: - print(heapq.heappop(arr)[1]) - else: - heapq.heappush(arr, (-a, a)) \ No newline at end of file diff --git a/Python_BOJ_2021/11279_2.py b/Python_BOJ_2021/11279_2.py deleted file mode 100644 index 892da8d..0000000 --- a/Python_BOJ_2021/11279_2.py +++ /dev/null @@ -1,16 +0,0 @@ -# 최대 힙 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -heap = [] - -for _ in range(n): - s = int(input()) - if s == 0: - if len(heap) == 0: - print(0) - else: - print(heapq.heappop(heap)[1]) - else: - heapq.heappush(heap, [-s, s]) diff --git a/Python_BOJ_2021/11286.py b/Python_BOJ_2021/11286.py deleted file mode 100644 index 33517b1..0000000 --- a/Python_BOJ_2021/11286.py +++ /dev/null @@ -1,14 +0,0 @@ -# 절댓값 힙 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -arr = [] -for _ in range(int(input())): - a = int(input()) - if a == 0: - if len(arr) == 0: - print(0) - else: - print(heapq.heappop(arr)[1]) - else: - heapq.heappush(arr, (abs(a), a)) \ No newline at end of file diff --git a/Python_BOJ_2021/11365.py b/Python_BOJ_2021/11365.py deleted file mode 100644 index 327d758..0000000 --- a/Python_BOJ_2021/11365.py +++ /dev/null @@ -1,13 +0,0 @@ -# !밀비 급일 -import sys -from collections import deque - -while True: - s = sys.stdin.readline().rstrip() - if s == 'END': break - - tmp = deque() - for i in range(len(s)): - tmp.appendleft(s[i]) - - print(''.join(tmp)) \ No newline at end of file diff --git a/Python_BOJ_2021/1138.py b/Python_BOJ_2021/1138.py deleted file mode 100644 index 7f3b116..0000000 --- a/Python_BOJ_2021/1138.py +++ /dev/null @@ -1,20 +0,0 @@ -# 한 줄로 서기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int,input().split())) -ans = [0] * n - -for i in range(1, n+1): - num = arr[i-1] - cnt = 0 - for j in range(n): - if ans[j] == 0 and cnt == num: - ans[j] = i - break - - if ans[j] == 0: - cnt += 1 - -print(*ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11383.py b/Python_BOJ_2021/11383.py deleted file mode 100644 index 1552d8e..0000000 --- a/Python_BOJ_2021/11383.py +++ /dev/null @@ -1,26 +0,0 @@ -# 뚊 -n, m = map(int, input().split()) - -answer = [] -for _ in range(n): - sentence = input() - answer.append(sentence) -answer.sort() - -compare = [] -for _ in range(n): - sentence2 = input() - compare.append(sentence2) -compare.sort() - -flag = False -for i in range(n): - tmp = '' - for j in answer[i]: - tmp += j * 2 - - if tmp != compare[i]: - print("Not Eyfa") - exit(0) - -print("Eyfa") \ No newline at end of file diff --git a/Python_BOJ_2021/11399.py b/Python_BOJ_2021/11399.py deleted file mode 100644 index 5c4c6ce..0000000 --- a/Python_BOJ_2021/11399.py +++ /dev/null @@ -1,42 +0,0 @@ -# ATM - -N = int(input()) -Time = list(map(int, input().split())) -Time.sort() - -ans = 0 -for i in range(N): - for j in range(N-i): - ans += Time[j] - -print(ans) - -''' -업무를 빠르게 처리하는 순서 : 1 2 3 3 4 - -0 1 2 3 4 -ans = 1 -ans = 1 + 2 -ans = 1 + 2 + 3 -ans = 1 + 2 + 3 + 3 -ans = 1 + 2 + 3 + 3 + 4 = 13 - -0 1 2 3 -ans = 13 + 1 -ans = 13 + 1 + 2 -ans = 13 + 1 + 2 + 3 -ans = 13 + 1 + 2 + 3 + 3 = 22 - -0 1 2 -ans = 22 + 1 -ans = 22 + 1 + 2 -ans = 22 + 1 + 2 + 3 = 28 - -0 1 -ans = 28 + 1 -ans = 28 + 1 + 2 = 31 - -0 -ans = 31 + 1 = 32 - -''' \ No newline at end of file diff --git a/Python_BOJ_2021/11399_2.py b/Python_BOJ_2021/11399_2.py deleted file mode 100644 index c5d285e..0000000 --- a/Python_BOJ_2021/11399_2.py +++ /dev/null @@ -1,14 +0,0 @@ -# ATM -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -p = list(map(int, input().split())) -p.sort() - -ans = 0 - -for i in range(n): - ans += sum(p[:i + 1]) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11403.py b/Python_BOJ_2021/11403.py deleted file mode 100644 index ee921df..0000000 --- a/Python_BOJ_2021/11403.py +++ /dev/null @@ -1,28 +0,0 @@ -import sys -input = lambda : sys.stdin.readline().rstrip() -sys.setrecursionlimit(1000000) - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [False] * n - - -def dfs(x, y): - visited[y] = True - graph[x][y] = 1 - - for i in range(n): - if not visited[i] and graph[y][i] == 1: - dfs(x, i) - - -for i in range(n): - for j in range(n): - visited[j] = False - - for j in range(n): - if graph[i][j] == 1 and not visited[j]: - dfs(i, j) - -for i in range(n): - print(" ".join(map(str, graph[i]))) \ No newline at end of file diff --git "a/Python_BOJ_2021/11404-353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円355円222円200円354円235円264円.py" "b/Python_BOJ_2021/11404-353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円355円222円200円354円235円264円.py" deleted file mode 100644 index 775bce3..0000000 --- "a/Python_BOJ_2021/11404-353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円355円222円200円354円235円264円.py" +++ /dev/null @@ -1,41 +0,0 @@ -# 플로이드 -from heapq import * -import sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - - -def dijikstra(start): - queue = list() - distance = [INF] * (n + 1) - heappush(queue, (0, start)) - distance[start] = 0 - - while queue: - cost, current = heappop(queue) - if distance[current] < cost: continue - for i in graph[current]: - cost2 = cost + i[1] - if distance[i[0]]> cost2: - distance[i[0]] = cost2 - heappush(queue, (cost2, i[0])) - return distance - - -n = int(input()) -m = int(input()) - -graph = [[] for _ in range(n + 1)] -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append([to_, weight]) - -answer = list() -for i in range(1, n + 1): - answer.append(dijikstra(i)) - -for i in range(n): - for j in range(1, n + 1): - if answer[i][j] == INF: answer[i][j] = 0 - print(answer[i][j], end=' ') - print() \ No newline at end of file diff --git "a/Python_BOJ_2021/11404-355円224円214円354円231円200円355円222円200円354円235円264円.py" "b/Python_BOJ_2021/11404-355円224円214円354円231円200円355円222円200円354円235円264円.py" deleted file mode 100644 index 34c7c5c..0000000 --- "a/Python_BOJ_2021/11404-355円224円214円354円231円200円355円222円200円354円235円264円.py" +++ /dev/null @@ -1,27 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - -n = int(input()) -m = int(input()) - -graph = [[INF] * (n + 1) for _ in range(n + 1)] -for i in range(1, n + 1): - graph[i][i] = 0 - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_][to_] = min(graph[from_][to_], weight) - - -for k in range(1, n + 1): - for i in range(1, n + 1): - for j in range(1, n + 1): - graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j]) - - -for i in range(1, n + 1): - for j in range(1, n + 1): - if graph[i][j] == INF: graph[i][j] = 0 # 틀린 이유 - print(graph[i][j], end=' ') - print() \ No newline at end of file diff --git a/Python_BOJ_2021/11441.py b/Python_BOJ_2021/11441.py deleted file mode 100644 index 4435146..0000000 --- a/Python_BOJ_2021/11441.py +++ /dev/null @@ -1,19 +0,0 @@ -# 누적합 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -numbers = list(map(int, input().split())) - - -def sum(x, y): - answer = 0 - for i in range(x - 1, y): - answer += numbers[i] - return answer - - -m = int(input()) -for _ in range(m): - a, b = map(int, input().split()) - print(sum(a, b)) \ No newline at end of file diff --git a/Python_BOJ_2021/11478.py b/Python_BOJ_2021/11478.py deleted file mode 100644 index a2d4a69..0000000 --- a/Python_BOJ_2021/11478.py +++ /dev/null @@ -1,9 +0,0 @@ -# 서로 다른 부분 문자열 -s = input() -answer = set() - -for i in range(len(s)): - for j in range(i, len(s)): - tmp = s[i: j + 1] - answer.add(tmp) -print(len(answer)) \ No newline at end of file diff --git a/Python_BOJ_2021/1149.py b/Python_BOJ_2021/1149.py deleted file mode 100644 index 8e06cf9..0000000 --- a/Python_BOJ_2021/1149.py +++ /dev/null @@ -1,14 +0,0 @@ -# RGB 거리 - -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -p = [list(map(int, input().split())) for _ in range(n)] - -for i in range(1, n): - p[i][0] += min(p[i-1][1], p[i-1][2]) - p[i][1] += min(p[i-1][0], p[i-1][2]) - p[i][2] += min(p[i-1][0], p[i-1][1]) - -print(min(p[n-1][0], p[n-1][1], p[n-1][2])) \ No newline at end of file diff --git a/Python_BOJ_2021/11497.py b/Python_BOJ_2021/11497.py deleted file mode 100644 index 2af3e1f..0000000 --- a/Python_BOJ_2021/11497.py +++ /dev/null @@ -1,24 +0,0 @@ -# 통나무 건너뛰기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - n = int(input()) - arr = list(map(int, input().split())) - arr.sort() - # print(arr) - ans, front, rear = 0, 0, n-1 - woods_arr = [0] * n - - for i in range(n): - if i % 2 == 0: - woods_arr[rear] = arr[i] - rear -= 1 - else: - woods_arr[front] = arr[i] - front += 1 - # print(woods_arr) - for i in range(1, n): - ans = max(ans, abs(woods_arr[i] - woods_arr[i-1])) - - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1149_2.py b/Python_BOJ_2021/1149_2.py deleted file mode 100644 index 6fecd9a..0000000 --- a/Python_BOJ_2021/1149_2.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() -n = int(input()) -arr = [[0] * 3 for _ in range(n + 1)] - -for i in range(1, n + 1): - a, b, c = map(int, input().split()) - arr[i][0] = min(arr[i - 1][1], arr[i - 1][2]) + a - arr[i][1] = min(arr[i - 1][0], arr[i - 1][2]) + b - arr[i][2] = min(arr[i - 1][0], arr[i - 1][1]) + c - -print(min(arr[n][0], arr[n][1], arr[n][2])) \ No newline at end of file diff --git a/Python_BOJ_2021/11501.py b/Python_BOJ_2021/11501.py deleted file mode 100644 index c58e375..0000000 --- a/Python_BOJ_2021/11501.py +++ /dev/null @@ -1,20 +0,0 @@ -# 주식 -import sys -input = lambda : sys.stdin.readline().rstrip() - -t = int(input()) - -while t: - n = int(input()) - arr = list(map(int, input().split())) - ans = 0 - max = arr[n-1] - - for i in range(n-2, -1, -1): - if arr[i] < max: - ans += max - arr[i] - else: - max = arr[i] - - t -= 1 - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11508.py b/Python_BOJ_2021/11508.py deleted file mode 100644 index 9f49f43..0000000 --- a/Python_BOJ_2021/11508.py +++ /dev/null @@ -1,14 +0,0 @@ -# 2+1 세일 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [int(input()) for _ in range(n)] -arr.sort(reverse=True) - -ans = 0 -for i in range(n): - if i % 3 != 2: - ans += arr[i] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11509.py b/Python_BOJ_2021/11509.py deleted file mode 100644 index 831c150..0000000 --- a/Python_BOJ_2021/11509.py +++ /dev/null @@ -1,19 +0,0 @@ -# 풍선 맞추기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) - -h = [0] * 1000001 -ans = 0 - -for i in range(n): - if h[arr[i]+1]: - h[arr[i]+1] -= 1 - h[arr[i]] += 1 - else: - ans += 1 - h[arr[i]] += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1152.py b/Python_BOJ_2021/1152.py deleted file mode 100644 index a2d8009..0000000 --- a/Python_BOJ_2021/1152.py +++ /dev/null @@ -1,27 +0,0 @@ -# 단어의 개수 -''' -첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열 - -단어는 띄어쓰기 한개로 구분됨 - -공백이 연속으로 나오는 경우는 없다 - -문자열의 앞과 뒤에는 공백이 있을 수도 있다. -''' - -n = input() - -count = 1 - -for i in range(0, len(n)): - search = n[i] - - if i == 0 or i == len(n) - 1 and search == ' ': - continue - elif search == ' ': - count += 1 - -if len(n) == 1 and search == ' ': - count = 0 - -print(count) \ No newline at end of file diff --git a/Python_BOJ_2021/11559.py b/Python_BOJ_2021/11559.py deleted file mode 100644 index b03dcda..0000000 --- a/Python_BOJ_2021/11559.py +++ /dev/null @@ -1,82 +0,0 @@ -# 뿌요뿌요 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -graph = [['.' for _ in range(12)] for _ in range(6)] -visited = [[False] * 12 for _ in range(6)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -combo = 0 - -for j in range(11, -1, -1): - data = input() - for i in range(6): - graph[i][j] = data[i] - - -def bfs(x, y): - queue, location = deque(), list() - - color = graph[x][y] - visited[x][y] = True - cnt = 1 - - queue.append([x, y]) - location.append([x, y]) - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < 6 and 0 <= ny < 12 and not visited[nx][ny] and graph[nx][ny] == color: - visited[nx][ny] = True - cnt += 1 - queue.append([nx, ny]) - location.append([nx, ny]) - - if cnt>= 4: - for i in location: - graph[i[0]][i[1]] = '#' - return True - return False - - -def search(): - flag = False - i = 0 - while i < 6: - j = 0 - while j < 12: - if graph[i][j] != '.' and not visited[i][j]: - if bfs(i, j): flag = True - j += 1 - i += 1 - return flag - - -def delete(): - i = 0 - while i < 6: - j = 0 - while j < 12: - visited[i][j] = False - if graph[i][j] == '#': - graph[i].pop(j) - graph[i].append('.') - - visited[i].pop(j) - visited[i].append(False) - continue - j += 1 - i += 1 - - -while True: - state = search() - if not state: - break - else: - delete() - combo += 1 -print(combo) \ No newline at end of file diff --git a/Python_BOJ_2021/1157.py b/Python_BOJ_2021/1157.py deleted file mode 100644 index 9130af5..0000000 --- a/Python_BOJ_2021/1157.py +++ /dev/null @@ -1,16 +0,0 @@ -# 단어 공부 - -S = input().upper() - -index = [] - -for i in range(26): - index.append(0) - -for j in range(26): - index[j] = S.count(chr(j+ord('A'))) - -if index.count(max(index))> 1: - print('?') -else: - print(chr(index.index(max(index))+ord('A'))) \ No newline at end of file diff --git a/Python_BOJ_2021/11575.py b/Python_BOJ_2021/11575.py deleted file mode 100644 index 0988a35..0000000 --- a/Python_BOJ_2021/11575.py +++ /dev/null @@ -1,10 +0,0 @@ -# Affine Chipher -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - a, b = map(int, input().split()) - s, ans = input(), list() - for i in range(len(s)): - ans.append(chr(((a * (ord(s[i]) - ord('A')) + b) % 26) + ord('A'))) - print(''.join(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/11586.py b/Python_BOJ_2021/11586.py deleted file mode 100644 index 095fcd2..0000000 --- a/Python_BOJ_2021/11586.py +++ /dev/null @@ -1,35 +0,0 @@ -# 지영 공주님의 마법 거울 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [list(input()) for _ in range(n)] -k = int(input()) - -if k == 1: - for i in range(n): - print(''.join(arr[i])) - -elif k == 2: - tmp = [[''] * len(arr) for _ in range(len(arr))] - - for i in range(len(arr)): - for j in range(len(arr)): - tmp[i][n - 1 - j] = arr[i][j] - - ans = list(map(''.join, tmp)) - - for i in ans: - print(i) - -elif k == 3: - tmp = [[''] * len(arr) for _ in range(len(arr))] - - for i in range(len(arr)): - for j in range(len(arr)): - tmp[len(arr) - 1 - i][j] = arr[i][j] - - ans = list(map(''.join, tmp)) - - for i in ans: - print(i) diff --git a/Python_BOJ_2021/1159.py b/Python_BOJ_2021/1159.py deleted file mode 100644 index c358e95..0000000 --- a/Python_BOJ_2021/1159.py +++ /dev/null @@ -1,23 +0,0 @@ -# 농구 경기 -import sys -from collections import Counter -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -player, fn, cnt = list(), list(), 0 - -for i in range(n): - a = input() - player.append(a[0]) -player_cnt = Counter(player) - -for i, j in player_cnt.items(): - if j>= 5: - fn.append(i) - cnt += 1 - -fn.sort() -if cnt == 0: - print('PREDAJA') -else: - print(''.join(fn)) \ No newline at end of file diff --git a/Python_BOJ_2021/11650.py b/Python_BOJ_2021/11650.py deleted file mode 100644 index ce0193b..0000000 --- a/Python_BOJ_2021/11650.py +++ /dev/null @@ -1,12 +0,0 @@ -# 좌표 정렬하기 - -import sys -arr = [] - -for i in range(int(sys.stdin.readline().rstrip())): - a, b = map(int, sys.stdin.readline().rstrip().split()) - arr.append((a, b)) - - -for i, j in sorted(arr): - print(i, j) diff --git a/Python_BOJ_2021/11651.py b/Python_BOJ_2021/11651.py deleted file mode 100644 index d046733..0000000 --- a/Python_BOJ_2021/11651.py +++ /dev/null @@ -1,11 +0,0 @@ -# 좌표 정렬하기2 -import sys -arr = [] - -for i in range(int(sys.stdin.readline().rstrip())): - a, b = map(int, sys.stdin.readline().rstrip().split()) - arr.append((b, a)) - - -for i, j in sorted(arr): - print(j, i) diff --git a/Python_BOJ_2021/11654.py b/Python_BOJ_2021/11654.py deleted file mode 100644 index 3196d99..0000000 --- a/Python_BOJ_2021/11654.py +++ /dev/null @@ -1,5 +0,0 @@ -# 아스키 코드 - -x = input() - -print(ord(x)) \ No newline at end of file diff --git a/Python_BOJ_2021/11656.py b/Python_BOJ_2021/11656.py deleted file mode 100644 index e34cb86..0000000 --- a/Python_BOJ_2021/11656.py +++ /dev/null @@ -1,16 +0,0 @@ -# 접미사 배열 -import sys -from collections import deque - -s = deque(sys.stdin.readline().rstrip()) -ans = [''.join(s)] - -for i in range(len(s)): - s.popleft() - ans.append(''.join(s)) - -ans.pop() -ans.sort() - -for i in ans: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/11659.py b/Python_BOJ_2021/11659.py deleted file mode 100644 index 6f6f946..0000000 --- a/Python_BOJ_2021/11659.py +++ /dev/null @@ -1,14 +0,0 @@ -# 구간 합 구하기 4 -import sys - -N, M = map(int, sys.stdin.readline().strip().split()) -lst = list(map(int, sys.stdin.readline().strip().split())) - -sum_lst = [0]*(len(lst)+1) -for i in range(1, len(lst)+1): - sum_lst[i] = sum_lst[i-1]+lst[i-1] - - -for i in range(M): - a, b = map(int, sys.stdin.readline().strip().split()) - print(sum_lst[b]- sum_lst[a-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/11720.py b/Python_BOJ_2021/11720.py deleted file mode 100644 index ebb20fb..0000000 --- a/Python_BOJ_2021/11720.py +++ /dev/null @@ -1,11 +0,0 @@ -# 숫자의 합 - -n = int(input()) -numbers = list(map(int,input())) - -sum = 0 - -for i in range(n): - sum = sum + numbers[i] - -print(sum) \ No newline at end of file diff --git a/Python_BOJ_2021/11724-unionfind.py b/Python_BOJ_2021/11724-unionfind.py deleted file mode 100644 index 724132d..0000000 --- a/Python_BOJ_2021/11724-unionfind.py +++ /dev/null @@ -1,36 +0,0 @@ -# 연결 요소의 갯수 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def find(parent, x): - if parent[x] != x: - parent[x] = find(parent, parent[x]) - return parent[x] - - -def union(a, b): - a = find(parent, a) - b = find(parent, b) - if a < b: - parent[b] = a - else: - parent[a] = b - - -v, e = map(int, input().split()) - -parent = [0] * (v+1) -for i in range(1, v+1): - parent[i] = i - -arr = [list(map(int, input().split())) for _ in range(e)] -arr.sort(key=lambda x : min(x)) - -for i in arr: - a, b = i - if find(parent, a) != find(parent, b): - union(a, b) - -parent.pop(0) -print(len(set(parent))) \ No newline at end of file diff --git a/Python_BOJ_2021/11724.py b/Python_BOJ_2021/11724.py deleted file mode 100644 index 6f1d5f5..0000000 --- a/Python_BOJ_2021/11724.py +++ /dev/null @@ -1,28 +0,0 @@ -# 연결 요소의 개수 -import sys -sys.setrecursionlimit(10000) -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [[] for _ in range(n+1)] -visited = [False] * (n+1) - -for _ in range(m): - a, b = map(int, input().split()) - graph[a].append(b) - graph[b].append(a) - -def dfs(i): - visited[i] = True - for j in graph[i]: - if not visited[j]: - dfs(j) - -ans = 0 - -for i in range(1, n+1): - if not visited[i]: - dfs(i) - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11724_2.py b/Python_BOJ_2021/11724_2.py deleted file mode 100644 index 53fd202..0000000 --- a/Python_BOJ_2021/11724_2.py +++ /dev/null @@ -1,32 +0,0 @@ -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -parent = [i for i in range(1, n + 1)] -graph = [list(map(int, input().split())) for _ in range(m)] -graph.sort(key= lambda x : min(x)) - - -def find(x): - if parent[x] != x: return x - parent[x] = find(parent[x]) - return parent[x] - - -def union(a, b): - a = find(a) - b = find(b) - if a < b: - parent[b] = a - else: - parent[a] = b - - -for i in graph: - a, b = i - if find(a) != find(b): - union(a, b) - -parent.pop(0) -print(parent) -print(len(set(parent))) \ No newline at end of file diff --git a/Python_BOJ_2021/11724_3.py b/Python_BOJ_2021/11724_3.py deleted file mode 100644 index 7b1741e..0000000 --- a/Python_BOJ_2021/11724_3.py +++ /dev/null @@ -1,27 +0,0 @@ -# 연결 요소의 개수 dfs -import sys -sys.setrecursionlimit(10000) -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -visited = [0] * (n + 1) - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) - -def dfs(n): - visited[n] = 1 - for i in graph[n]: - if not visited[i]: - dfs(i) - -ans = 0 -for i in range(1, n + 1): - if not visited[i]: - dfs(i) - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11724_Union_find.py b/Python_BOJ_2021/11724_Union_find.py deleted file mode 100644 index e5be2be..0000000 --- a/Python_BOJ_2021/11724_Union_find.py +++ /dev/null @@ -1,39 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -def getParent(parent, x): - if parent[x] == x: - return x - else: - parent[x] = getParent(parent, parent[x]) - return parent[x] - - -def union(parent, a, b): - a = getParent(parent, a) - b = getParent(parent, b) - if a < b: parent[b] = a - else: parent[a] = b - - -def find(parent, a, b): - a = getParent(parent, a) - b = getParent(parent, b) - if a != b: - union(parent, a, b) - - -v, e = map(int, input().split()) -parent = [0] * (v + 1) -for i in range(1, v + 1): - parent[i] = i - -arr = [list(map(int, input().split())) for _ in range(e)] -arr.sort(key = lambda x : min(x)) - -for i in arr: - a, b = i - find(parent, a, b) - -parent.pop(0) -print(len(set(parent))) \ No newline at end of file diff --git a/Python_BOJ_2021/11725.py b/Python_BOJ_2021/11725.py deleted file mode 100644 index c8be280..0000000 --- a/Python_BOJ_2021/11725.py +++ /dev/null @@ -1,25 +0,0 @@ -import sys -sys.setrecursionlimit(10 ** 9) -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -tree = [[] for _ in range(n+1)] -ans = [0 for _ in range(n+1)] - -for _ in range(n-1): - a, b = map(int, input().split()) - tree[a].append(b) - tree[b].append(a) - - -def dfs(start, tree, ans): - for i in tree[start]: - if ans[i] == 0: - ans[i] = start - dfs(i, tree, ans) - - -dfs(1, tree, ans) - -for i in range(2, n+1): - print(ans[i]) \ No newline at end of file diff --git a/Python_BOJ_2021/11726.py b/Python_BOJ_2021/11726.py deleted file mode 100644 index 7a27ba4..0000000 --- a/Python_BOJ_2021/11726.py +++ /dev/null @@ -1,11 +0,0 @@ -# 2xn 타일링 -import sys - -n = int(sys.stdin.readline().rstrip()) -dp = [0] * (n + 1) -dp[0], dp[1] = 1, 1 - -for i in range(2, n + 1): - dp[i] = (dp[i - 2] + dp[i - 1]) % 10007 - -print(dp[-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/11729.py b/Python_BOJ_2021/11729.py deleted file mode 100644 index acdbadd..0000000 --- a/Python_BOJ_2021/11729.py +++ /dev/null @@ -1,20 +0,0 @@ -# 하노이 탑 이동 순서 - -N = int(input()) - -from_pos = 1 -aux_pos = 2 -to_pos = 3 - - -def hanoi(N, from_pos, to_pos, aux_pos): - if N == 1: - print(from_pos, to_pos) - return - hanoi(N-1,from_pos,aux_pos,to_pos) - print(from_pos, to_pos) - hanoi(N-1,aux_pos, to_pos, from_pos) - - -print(pow(2, N)-1) -hanoi(N, from_pos, to_pos, aux_pos) \ No newline at end of file diff --git a/Python_BOJ_2021/11779.py b/Python_BOJ_2021/11779.py deleted file mode 100644 index 1e32ff0..0000000 --- a/Python_BOJ_2021/11779.py +++ /dev/null @@ -1,45 +0,0 @@ -import sys, heapq -input = lambda :sys.stdin.readline().rstrip() - - -def PrintResult(res): - print(distance[end]) - print(len(res)) - print(*res) - - -def trace(start, end): - res = [end] - lastTrace[start] = 0 - while lastTrace[end]: - res.append(lastTrace[end]) - end = lastTrace[end] - return PrintResult(res[::-1]) - -def dijkstra(start): - distance[start] = 0 - queue = [] - heapq.heappush(queue, (0, start)) - while queue: - dist, now = heapq.heappop(queue) #dist: 지금까지 온 거리, now: 현재 기준 시작 버스. - if distance[now] < dist: - continue - for nextCity, nextDist in graph[now]: - cost = dist + nextDist - if cost < distance[nextCity]: - distance[nextCity] = cost - lastTrace[nextCity] = now - heapq.heappush(queue, (cost, nextCity)) - return trace(start, end) - - -n, m = int(input()), int(input()) -graph = [[] for _ in range(n + 1)] -for _ in range(m): - a, b, c = map(int, input().split()) - graph[a].append((b, c)) -start, end = map(int, input().split()) -INF = int(1e9) -distance = [INF] * (n + 1) -lastTrace = [None] * (n + 1) -dijkstra(start) \ No newline at end of file diff --git a/Python_BOJ_2021/1181.py b/Python_BOJ_2021/1181.py deleted file mode 100644 index 9d0d9da..0000000 --- a/Python_BOJ_2021/1181.py +++ /dev/null @@ -1,12 +0,0 @@ -# 단어 정렬 - -N = int(input()) -words = [input() for _ in range(N)] -words = sorted(words, key=lambda x: (len(x), x)) - -tmp = '' - -for i in words: - if tmp != i: - print(i) - tmp = i \ No newline at end of file diff --git a/Python_BOJ_2021/11816.py b/Python_BOJ_2021/11816.py deleted file mode 100644 index 16abf4b..0000000 --- a/Python_BOJ_2021/11816.py +++ /dev/null @@ -1,4 +0,0 @@ -# 8진수, 10진수, 16진수 - -s = input() -print(int(s[2:], 16) if s[1]=='x' else int(s[1:], 8) if s[0]=='0' else s) \ No newline at end of file diff --git a/Python_BOJ_2021/1182.py b/Python_BOJ_2021/1182.py deleted file mode 100644 index af14cc2..0000000 --- a/Python_BOJ_2021/1182.py +++ /dev/null @@ -1,14 +0,0 @@ -# 부분수열의 합 -from itertools import combinations -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, s = map(int, input().split()) -arr = list(map(int, input().split())) -ans = 0 - -for i in range(1, n + 1): - for cb in combinations(arr, i): - if sum(cb) == s: - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/11866.py b/Python_BOJ_2021/11866.py deleted file mode 100644 index 5fed92f..0000000 --- a/Python_BOJ_2021/11866.py +++ /dev/null @@ -1,14 +0,0 @@ -# 요세푸스 문제0 -import sys -input = lambda : sys.stdin.readline().rstrip() - -N, M = map(int, input().split()) -circle = [str(x) for x in range(1, N+1)] -p = 0 -seq = [] -while circle: - p = (p + M - 1) % N - seq.append(circle.pop(p)) - N -= 1 - -print('<', ', '.join(seq), ">", sep='') \ No newline at end of file diff --git a/Python_BOJ_2021/11899.py b/Python_BOJ_2021/11899.py deleted file mode 100644 index 94727a7..0000000 --- a/Python_BOJ_2021/11899.py +++ /dev/null @@ -1,18 +0,0 @@ -# 괄호 끼워넣기 -import sys - -s = sys.stdin.readline().rstrip() -ans = 0 -stack = [] - -for i in range(len(s)): - if s[i] == '(': - stack.append(s[i]) - else: - if len(stack) != 0 and stack[-1] == '(': - stack.pop() - else: - ans += 1 - -ans += len(stack) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1193.py b/Python_BOJ_2021/1193.py deleted file mode 100644 index f46a93f..0000000 --- a/Python_BOJ_2021/1193.py +++ /dev/null @@ -1,25 +0,0 @@ -# 분수 찾기 - -X = int(input()) - -nums = 0 -i = 0 -boonja = 0 -boonmo = 0 - -while nums < X: - i += 1 - nums = nums + i - -if i % 2 == 0: - boonja = i + X - nums - boonmo = 1 + nums - X - -elif i % 2 == 1: - boonja = 1 + nums - X - boonmo = i + X - nums - - -print(f'{boonja}/{boonmo}') - - diff --git a/Python_BOJ_2021/11944.py b/Python_BOJ_2021/11944.py deleted file mode 100644 index 8164344..0000000 --- a/Python_BOJ_2021/11944.py +++ /dev/null @@ -1,7 +0,0 @@ -# NN -import sys - -n, m = map(int, sys.stdin.readline().rstrip().split()) -ans = str(n) * n - -print(ans[:m]) diff --git a/Python_BOJ_2021/1197.py b/Python_BOJ_2021/1197.py deleted file mode 100644 index abd9697..0000000 --- a/Python_BOJ_2021/1197.py +++ /dev/null @@ -1,49 +0,0 @@ -# 최소 스패닝 트리 -# 27719041 hoijae0194 1197 맞았습니다!! 53136 448 Python 3 / 수정 798 -import sys -input = lambda : sys.stdin.readline().rstrip() - -v, e = map(int, input().split()) -edges = [list(map(int, input().split())) for _ in range(e)] - -edges.sort(key = lambda x : x[2]) -parent = {} - -for i in range(v): - parent[i + 1] = i + 1 - - -def find(x, arr): - if x == arr[x]: - return x - arr[x] = find(arr[x], arr) - return arr[x] - - -def union(x, y, arr): - x = find(x, arr) - y = find(y, arr) - if x < y: - arr[y] = x - else: - arr[x] = y - - -def findParent(x, y, arr): - x = find(x, arr) - y = find(y, arr) - if x == y: return True - else: return False - - -MST = list() -for e in edges: - f, t, w = e - if not findParent(f, t, parent): - union(f, t, parent) - MST.append(e) - -ans = 0 -for i in range(len(MST)): - ans += MST[i][2] -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/12015.py b/Python_BOJ_2021/12015.py deleted file mode 100644 index 555cc65..0000000 --- a/Python_BOJ_2021/12015.py +++ /dev/null @@ -1,17 +0,0 @@ -# 가장 긴 증가하는 부분 수열2 -from bisect import bisect_left - -n = int(input()) -A = list(map(int, input().split())) - -dp = [] - -for i in A: - k = bisect_left(dp, i) - if len(dp) <= k: - dp.append(i) - - else: - dp[k] = i - -print(len(dp)) \ No newline at end of file diff --git a/Python_BOJ_2021/1202.py b/Python_BOJ_2021/1202.py deleted file mode 100644 index 1b92acd..0000000 --- a/Python_BOJ_2021/1202.py +++ /dev/null @@ -1,31 +0,0 @@ -# 보석 도둑 -import sys -from queue import PriorityQueue -input = lambda : sys.stdin.readline().rstrip() - -n, k = map(int, input().split()) -jew = [] -for i in range(n): - jew.append(list(map(int, input().split()))) -bag = [] -for i in range(k): - bag.append(int(input())) -jew.sort(reverse=True, key=lambda x:x[1]) -for i in range(n): - jew[i].insert(0, i) - -jew.sort(key=lambda x:x[1]) -bag.sort() -q = PriorityQueue() - -idx = 0 -sum = 0 - -for i in range(k): - while idx < n and bag[i]>= jew[idx][1]: - q.put((jew[idx][0], jew[idx][2])) - idx += 1 - if not q.empty(): - sum += q.get()[1] - -print(sum) \ No newline at end of file diff --git a/Python_BOJ_2021/12100.py b/Python_BOJ_2021/12100.py deleted file mode 100644 index 9ac6d5c..0000000 --- a/Python_BOJ_2021/12100.py +++ /dev/null @@ -1,67 +0,0 @@ -# 2045 (Easy) -from collections import deque -from copy import deepcopy - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def move(board, di): - visited = [[False] * n for _ in range(n)] - - if di in [0, 3]: - start, end, step = 0, n, 1 - else: - start, end, step = n-1, -1, -1 - - for i in range(start, end, step): - for j in range(start, end, step): - if board[i][j] == 0: continue - - x, y = i, j - val = board[x][y] - board[x][y] = 0 - nx, ny = x + dx[di], y + dy[di] - - while True: - if nx < 0 or nx>= n or ny < 0 or ny>= n: break - - if board[nx][ny] == 0: - x, y = nx, ny - nx, ny = x + dx[di], y + dy[di] - elif board[nx][ny] == val and not visited[nx][ny]: - x, y = nx, ny - visited[x][y] = True - break - else: - break - - board[x][y] = board[x][y] + val - return board - - -def bfs(board): - queue = deque([board]) - max_val = -1 - step = 0 - - while queue: - for _ in range(len(queue)): - board = queue.popleft() - - for di in range(4): - n_board = move(deepcopy(board), di) - queue.append(n_board) - - for i in range(n): - for j in range(n): - if n_board[i][j]> max_val: - max_val = n_board[i][j] - - step += 1 - if step == 5: # 스텝이 5회가 되면 강제 종료 - return max_val - - -n = int(input()) -arr = [list(map(int, input().split())) for _ in range(n)] -print(bfs(arr)) \ No newline at end of file diff --git a/Python_BOJ_2021/1212.py b/Python_BOJ_2021/1212.py deleted file mode 100644 index 1f6e072..0000000 --- a/Python_BOJ_2021/1212.py +++ /dev/null @@ -1,8 +0,0 @@ -# 8진수 2진수 - -# 8> 10 -# 10> 2 - -s = input() -tmp = int(s, 8) -print(bin(tmp)[2:]) \ No newline at end of file diff --git a/Python_BOJ_2021/1213.py b/Python_BOJ_2021/1213.py deleted file mode 100644 index 1b3ebe5..0000000 --- a/Python_BOJ_2021/1213.py +++ /dev/null @@ -1,23 +0,0 @@ -# 팰린드롬 만들기 -import sys -names = sys.stdin.readline().rstrip() -alpha_cnt = [0 for _ in range(26)] - -for i in names: - alpha_cnt[ord(i) - 65] += 1 - -odd = 0 -odd_alpha = '' -alpha = '' - -for i in range(26): - if alpha_cnt[i] % 2 == 1: - odd += 1 - odd_alpha += chr(i + 65) - - alpha += chr(i + 65) * (alpha_cnt[i] // 2) - -if odd> 1: - print("I'm Sorry Hansoo") -else: - print(alpha + odd_alpha + alpha[::-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/1225.py b/Python_BOJ_2021/1225.py deleted file mode 100644 index 8f7d734..0000000 --- a/Python_BOJ_2021/1225.py +++ /dev/null @@ -1,13 +0,0 @@ -# 이상한 곱셈 -import sys -input = lambda :sys.stdin.readline().rstrip() - -a, b = map(str, input().split()) -a_tmp, b_tmp = 0, 0 - -for i in range(len(a)): - a_tmp += int(a[i]) -for j in range(len(b)): - b_tmp += int(b[j]) - -print(a_tmp * b_tmp) diff --git a/Python_BOJ_2021/1238.py b/Python_BOJ_2021/1238.py deleted file mode 100644 index 747c1d0..0000000 --- a/Python_BOJ_2021/1238.py +++ /dev/null @@ -1,37 +0,0 @@ -# 파티 -# 27721418 hoijae0194 1238 맞았습니다!! 31612 2452 Python 3 / 수정 842 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -INF = int(1e9) -n, m, x = map(int, input().split()) -edges = [[] for _ in range(n + 1)] - -for _ in range(m): - a, b, c = map(int, input().split()) - edges[a].append((c, b)) - - -def dijikstra(s): - queue = list() - heapq.heappush(queue, (0, s)) - distance = [INF] * (n + 1) - distance[s] = 0 - while queue: - cost, now = heapq.heappop(queue) - if distance[now] < cost: - continue - for cost2, now2 in edges[now]: - cost3 = cost + cost2 - if distance[now2]> cost3: - distance[now2] = cost3 - heapq.heappush(queue, (cost3, now2)) - return distance - - -ans = 0 -for i in range(1, n + 1): - go = dijikstra(i)[x] - back = dijikstra(x)[i] - ans = max(ans, go + back) -print(ans) diff --git a/Python_BOJ_2021/1244.py b/Python_BOJ_2021/1244.py deleted file mode 100644 index 2745a24..0000000 --- a/Python_BOJ_2021/1244.py +++ /dev/null @@ -1,29 +0,0 @@ -# 스위치 켜고 끄기 -n = int(input()) -arr = list(map(int,input().split())) - -def womanDo(num): - left, right = num - 2, num - arr[num - 1] ^= 1 - while left>= 0 and right < n: - if arr[left] == arr[right]: - arr[left] ^= 1 - arr[right] ^= 1 - else: - break - left -= 1 - right += 1 - - -for _ in range(int(input())): - sex, num = map(int, input().split()) - - if sex == 1: - for i in range(n): - if (i+1) % num == 0: - arr[i] ^= 1 - elif sex == 2: - womanDo(num) - -for i in range(0, n, 20): - print(*arr[i:i+20]) \ No newline at end of file diff --git a/Python_BOJ_2021/1260.py b/Python_BOJ_2021/1260.py deleted file mode 100644 index 9f142df..0000000 --- a/Python_BOJ_2021/1260.py +++ /dev/null @@ -1,49 +0,0 @@ -# DFS와 BFS -import sys -from collections import deque - -node, edge, start = map(int, sys.stdin.readline().split()) -graph = [[] for _ in range(node + 1)] - - -for _ in range(edge): - a, b = map(int, sys.stdin.readline().split()) - graph[a].append(b) - graph[a].sort() - graph[b].append(a) - graph[b].sort() - -dfs_visited = [False] * (node + 1) - - -def dfs(graph, start, dfs_visited): - dfs_visited[start] = True - print(start, end=' ') - - for i in graph[start]: - if dfs_visited[i] == False: - dfs_visited[i] = True - dfs(graph, i, dfs_visited) - - -bfs_visited = [False] * (node + 1) - - -def bfs(graph, start, bfs_visited): - bfs_visited[start] = True - queue = deque([start]) - - while queue: - v = queue.popleft() - print(v, end=' ') - - for i in graph[v]: - if bfs_visited[i] == False: - queue.append(i) - bfs_visited[i] = True - - - -dfs(graph, start, dfs_visited) -print() -bfs(graph, start, bfs_visited) \ No newline at end of file diff --git a/Python_BOJ_2021/12605.py b/Python_BOJ_2021/12605.py deleted file mode 100644 index a7f86a9..0000000 --- a/Python_BOJ_2021/12605.py +++ /dev/null @@ -1,11 +0,0 @@ -# 단어순서 뒤집기 -num = int(input()) -answer = list() - -for i in range(num): - N = list(input().split(' ')) - reversed = N[::-1] - answer.append(' '.join(reversed)) - -for i in range(num): - print("Case #{0}: {1}".format(i+1, answer[i])) \ No newline at end of file diff --git a/Python_BOJ_2021/1260_2.py b/Python_BOJ_2021/1260_2.py deleted file mode 100644 index 5d7e5ac..0000000 --- a/Python_BOJ_2021/1260_2.py +++ /dev/null @@ -1,40 +0,0 @@ -# DFS와 BFS -from collections import deque -import sys -sys.setrecursionlimit(1000001) -input = lambda :sys.stdin.readline().rstrip() - -m, n, v = map(int, input().split()) -graph = [[] for _ in range(m + 1)] -for _ in range(n): - a, b = map(int, input().split()) - graph[a].append(b) - graph[a].sort() - graph[b].append(a) - graph[b].sort() - -def dfs(node): - visited[node] = 1 - print(node, end=' ') - for i in graph[node]: - if not visited[i]: - dfs(i) - -def bfs(node): - queue = deque() - queue.append(node) - visited[node] = 1 - while queue: - x = queue.popleft() - print(x, end=' ') - for i in graph[x]: - if not visited[i]: - visited[i] = 1 - queue.append(i) - - -visited = [0 for _ in range(m + 1)] -dfs(v) -print() -visited = [0 for _ in range(m + 1)] -bfs(v) \ No newline at end of file diff --git a/Python_BOJ_2021/1260_3.py b/Python_BOJ_2021/1260_3.py deleted file mode 100644 index 230418d..0000000 --- a/Python_BOJ_2021/1260_3.py +++ /dev/null @@ -1,45 +0,0 @@ -# DFS와 BFS -import sys -from collections import deque -sys.setrecursionlimit(1000001) -input = lambda :sys.stdin.readline().rstrip() - -n, m, v = map(int, input().split()) # 정점의 갯수, 간선의 갯수, 시작할 정점 번호 -graph = [[] for _ in range(n + 1)] - -for _ in range(m): - from_, to_ = map(int, input().split()) - graph[from_].append((to_)) - graph[from_].sort() - graph[to_].append((from_)) - graph[to_].sort() -visited = [0] * (n + 1) - - -def dfs(start): - visited[start] = 1 - print(start, end=' ') - for i in graph[start]: - if not visited[i]: - dfs(i) - - -dfs(v) -print() -visited = [0] * (n + 1) - - -def bfs(start): - queue = deque() - queue.append((start)) - while queue: - x = queue.popleft() - visited[x] = 1 - print(x, end=' ') - for i in graph[x]: - if not visited[i]: - queue.append((i)) - visited[i] = 1 - - -bfs(v) \ No newline at end of file diff --git a/Python_BOJ_2021/1260_4.py b/Python_BOJ_2021/1260_4.py deleted file mode 100644 index 7106204..0000000 --- a/Python_BOJ_2021/1260_4.py +++ /dev/null @@ -1,43 +0,0 @@ -# DFS와 BFS -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -n, m, v = map(int, input().split()) -graph = [[] for _ in range(n + 1)] - - -for _ in range(m): - a, b = map(int, input().split()) - graph[a].append(b) - graph[a].sort() - graph[b].append(a) - graph[b].sort() - -dfs_visited = [False] * (n + 1) - - -def dfs(n): - dfs_visited[n] = True - print(n, end=' ') - for i in graph[n]: - if not dfs_visited[i]: - dfs(i) - -dfs(v) -print() -bfs_visited = [False] * (n + 1) - -def bfs(n): - queue = deque() - queue.append(n) - while queue: - x = queue.popleft() - bfs_visited[x] = True - print(x, end=' ') - for i in graph[x]: - if not bfs_visited[i]: - queue.append(i) - bfs_visited[i] = True - -bfs(v) \ No newline at end of file diff --git a/Python_BOJ_2021/1261.py b/Python_BOJ_2021/1261.py deleted file mode 100644 index 13c13ca..0000000 --- a/Python_BOJ_2021/1261.py +++ /dev/null @@ -1,31 +0,0 @@ -# 알고스팟 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -m, n = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[-1] * m for _ in range(n)] - - -def bfs(): - queue = deque() - queue.append([0, 0]) - visited[0][0] = 0 - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if visited[nx][ny] == -1: - if graph[nx][ny] == 0: - visited[nx][ny] = visited[x][y] - queue.appendleft([nx, ny]) - else: - visited[nx][ny] = visited[x][y] + 1 - queue.append([nx, ny]) - -bfs() -print(visited[n - 1][m - 1]) \ No newline at end of file diff --git a/Python_BOJ_2021/1264.py b/Python_BOJ_2021/1264.py deleted file mode 100644 index 25d3a28..0000000 --- a/Python_BOJ_2021/1264.py +++ /dev/null @@ -1,13 +0,0 @@ -# 모음의 갯수 -import sys -mo = ['a', 'e', 'i', 'o', 'u'] -cnt = 0 - -while True: - sentence = list(map(str, sys.stdin.readline().rstrip().lower())) - if sentence == ['#']: break - for i in range(len(sentence)): - if sentence[i] in mo: - cnt += 1 - print(cnt) - cnt = 0 \ No newline at end of file diff --git a/Python_BOJ_2021/12780.py b/Python_BOJ_2021/12780.py deleted file mode 100644 index 19e3080..0000000 --- a/Python_BOJ_2021/12780.py +++ /dev/null @@ -1,5 +0,0 @@ -# 원피스 - -h = input() -n = input() -print(sum(1 if n == str(h[i:i + len(n)]) else 0 for i in range(len(h) - len(n) + 1))) \ No newline at end of file diff --git a/Python_BOJ_2021/12782.py b/Python_BOJ_2021/12782.py deleted file mode 100644 index 75e4750..0000000 --- a/Python_BOJ_2021/12782.py +++ /dev/null @@ -1,17 +0,0 @@ -# 비트 우정지수 -import sys -input = lambda :sys.stdin.readline().rstrip() - -for _ in range(int(input())): - arr = list(map(str, input().split())) - n, m = arr[0], arr[1] - one, zero = 0, 0 - for i in range(len(m)): - if n[i] == m[i]: continue - if m[i] == '1': - one += 1 - else: - zero += 1 - - t = min(one, zero) - print(t + (one + zero) - t * 2) diff --git a/Python_BOJ_2021/12789.py b/Python_BOJ_2021/12789.py deleted file mode 100644 index f711aba..0000000 --- a/Python_BOJ_2021/12789.py +++ /dev/null @@ -1,47 +0,0 @@ -# 도키도키 간식드라마 -from collections import deque -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -queue = deque(map(int, input().split())) -stack = deque() -target = 1 - -while queue: - if queue and queue[0] == target: - queue.popleft() - target += 1 - else: - stack.append(queue.popleft()) - - while stack and stack[-1] == target: - stack.pop() - target += 1 - -print("Nice" if not stack else "Sad") - - # if len(arr) != 0 and len(tmp) == 0: - # if arr[0] == target: - # arr.popleft() - # target += 1 - # else: - # tmp.append(arr.popleft()) - # elif len(arr) == 0 and len(tmp) != 0: - # if tmp[-1] == target: - # tmp.pop() - # target += 1 - # else: - # arr.append(tmp.pop()) - # elif len(arr) != 0 and len(tmp) != 0: - # if arr[0] == target: - # arr.popleft() - # target += 1 - # elif tmp[-1] == target: - # tmp.pop() - # target += 1 - # else: - # tmp.append(arr.popleft()) - # else: - # Flag = True - # break diff --git a/Python_BOJ_2021/1283.py b/Python_BOJ_2021/1283.py deleted file mode 100644 index e528cc2..0000000 --- a/Python_BOJ_2021/1283.py +++ /dev/null @@ -1,51 +0,0 @@ -# 단축키 지정 -import sys -from collections import defaultdict -input = lambda : sys.stdin.readline().rstrip() - -ans = [] -dic = defaultdict(int) - -for _ in range(int(input())): - s = input().split() - tmp = [] - cnt = 0 - flag = False - - for i in s: - if flag: - tmp.append(i) - continue - - if i[0].upper() in dic: - cnt += 1 - tmp.append(i) - elif i[0].upper() not in dic and not flag: - tmp.append(i.replace(i[0], '[' + i[0] + ']', 1)) - print(tmp) - dic[i[0].upper()] += 1 - flag = True - print(dic) - - if cnt == len(s): - tmp = [] - for i in s: - cnt = 0 - if flag: - tmp.append(i) - continue - - for j in i: - if j.upper() in dic: - cnt += 1 - if cnt == len(i): - tmp.append(i) - elif not flag and j.upper() not in dic: - flag = True - dic[j.upper()] += 1 - tmp.append(i.replace(j, '[' + j + ']', 1)) - continue - - ans.append(' '.join(tmp)) -for i in ans: - print(i) diff --git a/Python_BOJ_2021/12851.py b/Python_BOJ_2021/12851.py deleted file mode 100644 index 44bef3f..0000000 --- a/Python_BOJ_2021/12851.py +++ /dev/null @@ -1,25 +0,0 @@ -# 숨바꼭질 2 -import sys -from collections import deque - -n, k = map(int, sys.stdin.readline().rstrip().split()) -arr = [[100001, 0] for _ in range(100001)] -arr[n][0], arr[n][1] = 0, 1 - - -queue = deque([n]) -while queue: - x = queue.popleft() - - for nx in [x - 1, x + 1, 2 * x]: - if 0 <= nx < 100001: - if arr[nx][0] == 100001: - queue.append(nx) - arr[nx][0] = arr[x][0] + 1 - arr[nx][1] = arr[x][1] - elif arr[nx][0] == arr[x][0] + 1: - arr[nx][1] += arr[x][1] - - -print(arr[k][0]) -print(arr[k][1]) \ No newline at end of file diff --git a/Python_BOJ_2021/12865.py b/Python_BOJ_2021/12865.py deleted file mode 100644 index 5ea2cdb..0000000 --- a/Python_BOJ_2021/12865.py +++ /dev/null @@ -1,24 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, k = map(int, input().split()) - -weight, value = list(), list() -weight.append(0) -value.append(0) - -for _ in range(n): - w, v = map(int, input().split()) - weight.append(w) - value.append(v) - -dp = [[0] * (k + 1) for _ in range(n + 1)] - -for i in range(1, n + 1): - for j in range(1, k + 1): - dp[i][j] = dp[i - 1][j] - if weight[i] <= j: - dp[i][j] = max(dp[i - 1][j], value[i] + dp[i - 1][j - weight[i]]) - - -print(dp[n][k]) \ No newline at end of file diff --git a/Python_BOJ_2021/1300.py b/Python_BOJ_2021/1300.py deleted file mode 100644 index b473e80..0000000 --- a/Python_BOJ_2021/1300.py +++ /dev/null @@ -1,23 +0,0 @@ -# K번째 수 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -k = int(input()) - -start, end = 1, k -while start <= end: - mid = (start + end) // 2 - tmp = 0 - - for i in range(1, n+1): - tmp += min(mid // i, n) - - if tmp>= k: - ans = mid - end = mid - 1 - - else: - start = mid + 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1303.py b/Python_BOJ_2021/1303.py deleted file mode 100644 index 61aec3b..0000000 --- a/Python_BOJ_2021/1303.py +++ /dev/null @@ -1,31 +0,0 @@ -# 전쟁 - 전투 -import sys -input = lambda: sys.stdin.readline().rstrip() -sys.setrecursionlimit(3000000) - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n, m = map(int, input().split()) -graph = [list(map(str, input())) for _ in range(n)] -w, b = 0, 0 - - -def dfs(x, y, cnt): - soldier_color = graph[x][y] - graph[x][y] = 1 - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == soldier_color: - cnt = dfs(nx, ny, cnt + 1) - return cnt - - -for i in range(n): - for j in range(m): - if graph[i][j] == 'W': - w += dfs(i, j, 1) ** 2 - elif graph[i][j] == 'B': - b += dfs(i, j, 1) ** 2 - -print(w, b) \ No newline at end of file diff --git a/Python_BOJ_2021/1316.py b/Python_BOJ_2021/1316.py deleted file mode 100644 index 9fac895..0000000 --- a/Python_BOJ_2021/1316.py +++ /dev/null @@ -1,16 +0,0 @@ -# 그룹 단어 체커 - -n = int(input()) -ans = [] - -for i in range(n): - word = list(str(input())) - - for j in range(len((word))): - if j != len(word)-1 and word[j] == word[j+1]: - pass - elif word[j+1:].count(word[j]) != 0: - break - elif j == len(word)-1: - ans.append(i) -print(len(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/13163.py b/Python_BOJ_2021/13163.py deleted file mode 100644 index f7e9544..0000000 --- a/Python_BOJ_2021/13163.py +++ /dev/null @@ -1,8 +0,0 @@ -# 닉네임에 갓 붙이기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = list(input().split()) - s[0] = 'god' - print(''.join(s)) diff --git a/Python_BOJ_2021/13164.py b/Python_BOJ_2021/13164.py deleted file mode 100644 index 6841fe3..0000000 --- a/Python_BOJ_2021/13164.py +++ /dev/null @@ -1,17 +0,0 @@ -# 행복 유치원 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, k = map(int, input().split()) -a = list(map(int, input().split())) -ans = 0 - -for i in range(1, n): - a[i-1] = a[i] - a[i-1] - -a.sort() - -for i in range(n-k): - ans += a[i] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/13235.py b/Python_BOJ_2021/13235.py deleted file mode 100644 index 00b265b..0000000 --- a/Python_BOJ_2021/13235.py +++ /dev/null @@ -1,7 +0,0 @@ -# 팰린드롬 - -s = input() -if s[::] == s[::-1]: - print("true") -else: - print("false") \ No newline at end of file diff --git a/Python_BOJ_2021/13275.py b/Python_BOJ_2021/13275.py deleted file mode 100644 index ae06ba9..0000000 --- a/Python_BOJ_2021/13275.py +++ /dev/null @@ -1,26 +0,0 @@ -# 가장 긴 팰린드롬 부분 문자열 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def longesPalindrome(s): - t = '#'.join('({})'.format(s)) - n = len(t) - p = [0] * n - c = r = 0 - - for i in range(1, n- 1): - p[i] = (r>i) and min(r - i, p[2 * c - i]) - - while t[i + 1 + p[i]] == t[i - 1 - p[i]]: - p[i] += 1 - - if i + p[i]> r: - c, r = i, i + p[i] - - return max(p) - - -s = input() - -print(longesPalindrome(s)) \ No newline at end of file diff --git a/Python_BOJ_2021/1330.py b/Python_BOJ_2021/1330.py deleted file mode 100644 index f43eeba..0000000 --- a/Python_BOJ_2021/1330.py +++ /dev/null @@ -1,8 +0,0 @@ -a, b = map(int,input().split()) - -if a < b: - print('<') -if a> b: - print('>') -else: - print('==') \ No newline at end of file diff --git a/Python_BOJ_2021/13300.py b/Python_BOJ_2021/13300.py deleted file mode 100644 index 03ae07e..0000000 --- a/Python_BOJ_2021/13300.py +++ /dev/null @@ -1,24 +0,0 @@ -n, k = map(int, input().split()) -girl = [0] * 1000 -boy = [0] * 1000 - -for i in range(n): - sex, grade = map(int, input().split()) # sex> 0 : 여자, 1 : 남자 - if sex == 0: - girl[grade] += 1 - else: - boy[grade] += 1 - -for i in range(1, 7): - if girl[i] % k == 0: - girl[i] = girl[i] // k - else: - girl[i] = girl[i] // k + 1 - - if boy[i] % k == 0: - boy[i] = boy[i] // k - else: - boy[i] = boy[i] // k + 1 - -ans = sum(girl) + sum(boy) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/13305.py b/Python_BOJ_2021/13305.py deleted file mode 100644 index b925791..0000000 --- a/Python_BOJ_2021/13305.py +++ /dev/null @@ -1,16 +0,0 @@ -# 주유소 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -dis = list(map(int, input().split())) -price = list(map(int, input().split())) - -min_price = price[0] -ans = 0 - -for i in range(n-1): - min_price = min(price[i], min_price) - ans += dis[i] * min_price - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1339.py b/Python_BOJ_2021/1339.py deleted file mode 100644 index 23d9390..0000000 --- a/Python_BOJ_2021/1339.py +++ /dev/null @@ -1,29 +0,0 @@ -# 단어 수학 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -alphabet_dict = {'A':0, 'B':0, 'C':0, 'D':0, 'E':0, 'F':0, 'G':0, 'H':0, 'I':0, 'J':0, 'K':0, 'L':0, 'N':0, 'M':0, 'O':0, 'P':0, 'Q':0, 'R':0, 'S':0, 'T':0, 'U':0, 'V':0, 'W':0, 'X':0, 'Y':0, 'Z':0} -alphabet_list = list() - -ans = 0 -word = list() - -for _ in range(n): - word.append(input()) - -for alphabet in word: - for i in range(len(alphabet)): - num = 10 ** (len(alphabet) - i -1) - alphabet_dict[alphabet[i]] += num - -for value in alphabet_dict.values(): - if value> 0: - alphabet_list.append(value) - -sorted_list = sorted(alphabet_list, reverse=True) - -for i in range(len(sorted_list)): - ans += sorted_list[i] * (9 - i) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/13420.py b/Python_BOJ_2021/13420.py deleted file mode 100644 index 09a9358..0000000 --- a/Python_BOJ_2021/13420.py +++ /dev/null @@ -1,30 +0,0 @@ -# 사칙연산 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - arr = list(input().split()) - - if arr[1] == '+': - if int(arr[0]) + int(arr[2]) == int(arr[4]): - print('correct') - else: - print('wrong answer') - - elif arr[1] == '-': - if int(arr[0]) - int(arr[2]) == int(arr[4]): - print('correct') - else: - print('wrong answer') - - elif arr[1] == '*': - if int(arr[0]) * int(arr[2]) == int(arr[4]): - print('correct') - else: - print('wrong answer') - - elif arr[1] == '/': - if int(arr[0]) / int(arr[2]) == int(arr[4]): - print('correct') - else: - print('wrong answer') \ No newline at end of file diff --git a/Python_BOJ_2021/13424.py b/Python_BOJ_2021/13424.py deleted file mode 100644 index affaa48..0000000 --- a/Python_BOJ_2021/13424.py +++ /dev/null @@ -1,46 +0,0 @@ -# 비밀 모임 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - - -def dijikstra(start): - queue = list() - heapq.heappush(queue, [0, start]) - distance[start] = 0 - - while queue: - cost, current = heapq.heappop(queue) - if distance[current] < cost: continue - for i in graph[current]: - cost2 = cost + i[1] - if distance[i[0]]> cost2: - distance[i[0]] = cost2 - heapq.heappush(queue, [cost2, i[0]]) - - -INF = int(1e9) -for _ in range(int(input())): - n, m = map(int, input().split()) - graph = [[] for _ in range(n + 1)] - - for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append([to_, weight]) - graph[to_].append([from_, weight]) - - k = int(input()) - people = list(map(int, input().split())) - - total = [0] * (n + 1) - for i in people: - distance = [INF] * (n + 1) - dijikstra(i) - for j in range(1, n + 1): - total[j] += distance[j] - - now, answer = INF, 0 - for i in range(1, n + 1): - if now> total[i]: - now = total[i] - answer = i - print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/1343.py b/Python_BOJ_2021/1343.py deleted file mode 100644 index 6bd094f..0000000 --- a/Python_BOJ_2021/1343.py +++ /dev/null @@ -1,24 +0,0 @@ -# 폴리오미노 -import sys -input = lambda : sys.stdin.readline().rstrip() - -data = input().upper() -i = 0 - -while True: - if i>= len(data): - break - - if data[i:i+4] == 'XXXX': - i += 4 - data = data.replace('X', 'A', 4) - elif data[i:i+2] == 'XX': - i += 2 - data = data.replace('X', 'B', 2) - elif data[i] == '.': - i += 1 - else: - data = -1 - break - -print(data) \ No newline at end of file diff --git a/Python_BOJ_2021/13458.py b/Python_BOJ_2021/13458.py deleted file mode 100644 index 427d300..0000000 --- a/Python_BOJ_2021/13458.py +++ /dev/null @@ -1,19 +0,0 @@ -# 시험 감독 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -a = list(map(int, input().split())) -b, c = map(int, input().split()) - -ans = n # 총 감독관 수 - -for group in a: - group -= b # 총 감독관이 마킹하는 학생 일단 빼주 시작 - if group> 0: - if group % c: - ans += (group // c + 1) - else: - ans += (group // c) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/13460.py b/Python_BOJ_2021/13460.py deleted file mode 100644 index 1084c62..0000000 --- a/Python_BOJ_2021/13460.py +++ /dev/null @@ -1,65 +0,0 @@ -# 구슬 탈출2 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(input()) for _ in range(n)] -visited = [[[[False] * m for _ in range(n)] for _ in range(m)] for _ in range(n)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -queue = deque() - - -def init(): - rx, ry, bx, by = 0, 0, 0, 0 - for i in range(n): - for j in range(m): - if graph[i][j] == 'R': - rx, ry = i, j - elif graph[i][j] == 'B': - bx, by = i, j - - queue.append((rx, ry, bx, by, 1)) - visited[rx][ry][bx][by] = True - - -def move(x, y, dx, dy): - cnt = 0 - - while graph[x + dx][y + dy] != '#' and graph[x][y] != 'O': - x += dx - y += dy - cnt += 1 - return x, y, cnt - - -def bfs(): - while queue: - rx, ry, bx, by, ans = queue.popleft() - if ans> 10: break - for i in range(4): - nrx, nry, rcnt = move(rx, ry, dx[i], dy[i]) - nbx, nby, bcnt = move(bx, by, dx[i], dy[i]) - - if graph[nbx][nby] != 'O': - if graph[nrx][nry] == 'O': - print(ans) - return - - if nrx == nbx and nry == nby: - if rcnt> bcnt: - nrx -= dx[i] - nry -= dy[i] - else: - nbx -= dx[i] - nby -= dy[i] - - if not visited[nrx][nry][nbx][nby]: - visited[nrx][nry][nbx][nby] = True - queue.append((nrx, nry, nbx, nby, ans+1)) - print(-1) - - -init() -bfs() \ No newline at end of file diff --git a/Python_BOJ_2021/13549.py b/Python_BOJ_2021/13549.py deleted file mode 100644 index 118d459..0000000 --- a/Python_BOJ_2021/13549.py +++ /dev/null @@ -1,25 +0,0 @@ -# 숨바꼭질 3 -import sys -from collections import deque - - -def bfs(start): - queue = deque([start]) - while queue: - x = queue.popleft() - if x == k: - return arr[x] - - for nx in (x - 1, x + 1, 2 * x): - if 0 <= nx < 100001 and not arr[nx]: - if nx == 2 * x and x != 0: - arr[nx] = arr[x] + 1 - queue.appendleft(nx) - else: - arr[nx] = arr[x] + 1 - queue.append(nx) - - -n, k = map(int, sys.stdin.readline().rstrip().split()) -arr = [0] * 100001 -print(bfs(n)) \ No newline at end of file diff --git a/Python_BOJ_2021/1356.py b/Python_BOJ_2021/1356.py deleted file mode 100644 index d43aa6d..0000000 --- a/Python_BOJ_2021/1356.py +++ /dev/null @@ -1,25 +0,0 @@ -# 유진수 -import sys - -s = sys.stdin.readline().rstrip() -ans = 0 -for i in range(len(s)): - if s == '1': continue - forward = s[0:i + 1] - backward = s[i + 1:len(s) + 1] - - x = 1 - for j in forward: - x *= int(j) - - y = 1 - for j in backward: - y *= int(j) - - if x == y: - ans += 1 - -if ans>= 1: - print('YES') -else: - print('NO') \ No newline at end of file diff --git a/Python_BOJ_2021/13565.py b/Python_BOJ_2021/13565.py deleted file mode 100644 index 021208d..0000000 --- a/Python_BOJ_2021/13565.py +++ /dev/null @@ -1,31 +0,0 @@ -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -m, n = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(m)] -visited = [[False] * n for _ in range(m)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(): - while queue: - x, y = queue.popleft() - if x == m - 1: - print("YES") - return - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < m and 0 <= ny < n: - if not visited[nx][ny] and graph[nx][ny] == 0: - visited[nx][ny] = True - queue.append((nx, ny)) - print("NO") - - -queue = deque() -for i in range(n): - if graph[0][i] == 0: - queue.append((0, i)) - visited[0][i] = True -bfs() \ No newline at end of file diff --git a/Python_BOJ_2021/1357.py b/Python_BOJ_2021/1357.py deleted file mode 100644 index e215f1a..0000000 --- a/Python_BOJ_2021/1357.py +++ /dev/null @@ -1,16 +0,0 @@ -# 뒤집힌 덧셈 -import sys -input = lambda : sys.stdin.readline().rstrip() - -arr = list(map(str, input().split())) -x, y = arr[0], arr[1] - - -def Rev(n): - return str(n[::-1]) - - -a = int(Rev(x)) -b = int(Rev(y)) - -print(int(Rev(str(a + b)))) diff --git a/Python_BOJ_2021/1371.py b/Python_BOJ_2021/1371.py deleted file mode 100644 index 77464ff..0000000 --- a/Python_BOJ_2021/1371.py +++ /dev/null @@ -1,13 +0,0 @@ -# 가장 많은 글자 -import sys - -n = sys.stdin.read() -alpha = [0 for i in range(26)] - -for s in n: - if s.islower(): - alpha[ord(s) - 97] += 1 - -for i in range(26): - if alpha[i] == max(alpha): - print(chr(i + 97), end='') \ No newline at end of file diff --git a/Python_BOJ_2021/1373.py b/Python_BOJ_2021/1373.py deleted file mode 100644 index ce2fa8a..0000000 --- a/Python_BOJ_2021/1373.py +++ /dev/null @@ -1,2 +0,0 @@ -# 2진수 8진수 -print('%o'%int(input(),2)) \ No newline at end of file diff --git a/Python_BOJ_2021/1389.py b/Python_BOJ_2021/1389.py deleted file mode 100644 index 1f83ed7..0000000 --- a/Python_BOJ_2021/1389.py +++ /dev/null @@ -1,25 +0,0 @@ -# 케빈 베이컨의 6단계 법칙 - 플로이드 워셜 알고리즘 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -table = [[n for _ in range(n)] for _ in range(n)] - -for _ in range(m): - a, b = map(int, input().split()) - table[a-1][b-1] = 1 - table[b-1][a-1] = 1 - - -for k in range(n): - for i in range(n): - for j in range(n): - if i == j: - table[i][j] = 0 - else: - table[i][j] = min(table[i][j], table[i][k] + table[k][j]) - -ans = list() -for i in table: - ans.append(sum(i)) -print(ans.index(min(ans)) + 1) \ No newline at end of file diff --git a/Python_BOJ_2021/13904.py b/Python_BOJ_2021/13904.py deleted file mode 100644 index c6d7265..0000000 --- a/Python_BOJ_2021/13904.py +++ /dev/null @@ -1,25 +0,0 @@ -# 과제 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -ans, day = 0, 0 - -arr = list() -for i in range(n): - work = list(map(int, input().split())) - if work[0]> day: day = work[0] - work.append(i) - arr.append(work) -arr = sorted(arr, key= lambda x : x[1], reverse=True) - -tmp = [-1 for _ in range(day+1)] - -for i in arr: - for j in range(i[0], 0, -1): - if tmp[j] == -1: - tmp[j] = i[2] - ans += i[1] - break - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/13913.py b/Python_BOJ_2021/13913.py deleted file mode 100644 index ac16f30..0000000 --- a/Python_BOJ_2021/13913.py +++ /dev/null @@ -1,36 +0,0 @@ -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, k = map(int, input().split()) -arr = [0] * 100001 -prev_node = [0] * 100001 - - -def save_path(x): - path_arr = list() - tmp = x - for _ in range(arr[x] + 1): - path_arr.append(tmp) - tmp = prev_node[tmp] - print(' '.join(map(str, path_arr[::-1]))) - - -def bfs(): - queue = deque() - queue.append(n) - while queue: - x = queue.popleft() - if x == k: - print(arr[x]) - save_path(x) - return x - - for nx in (x-1, x+1, 2*x): - if 0 <= nx < len(arr) and not arr[nx]: - queue.append(nx) - arr[nx] = arr[x] + 1 - prev_node[nx] = x - - -bfs() \ No newline at end of file diff --git a/Python_BOJ_2021/13985.py b/Python_BOJ_2021/13985.py deleted file mode 100644 index 133d9be..0000000 --- a/Python_BOJ_2021/13985.py +++ /dev/null @@ -1,8 +0,0 @@ -# Equality - -a, b = input().split('=') - -if eval(a) == int(b): - print('YES') -else: - print('NO') \ No newline at end of file diff --git a/Python_BOJ_2021/14002.py b/Python_BOJ_2021/14002.py deleted file mode 100644 index 86ce8bb..0000000 --- a/Python_BOJ_2021/14002.py +++ /dev/null @@ -1,27 +0,0 @@ -# 가장 긴 증가하는 부분 수열4 -# 27688564 hoijae0194 14002 맞았습니다!! 32704 172 Python 3 / 수정 447 -from collections import deque - -n = int(input()) -A = list(map(int, input().split())) -dp = [1] * n - -for i in range(1, n): - for j in range(i): - if A[i]> A[j] and dp[j] + 1> dp[i]: - dp[i] = dp[j] + 1 - -print(max(dp)) - -idx = dp.index(max(dp)) -c = dp[idx] -queue = deque() - -for i in range(idx-1, -1, -1): - if c == dp[i] + 1: - c = dp[i] - queue.appendleft(A[i]) -queue.append(A[idx]) - - -print(' '.join(map(str, queue))) \ No newline at end of file diff --git a/Python_BOJ_2021/14003.py b/Python_BOJ_2021/14003.py deleted file mode 100644 index d45fb8f..0000000 --- a/Python_BOJ_2021/14003.py +++ /dev/null @@ -1,27 +0,0 @@ -# 가장 긴 증가하는 부분 수열5 - -from bisect import bisect_left - -N = int(input()) -arr = [0] + list(map(int,input().split())) # input -d = [0] * (N+1) # for memoization -cmp = [-1000000001] # 이진탐색을 위해 생성. -maxVal = 0 #최대값을 저장할 변수 - -for i in range(1, N+1): #arr 반복 실행. - if cmp[-1] < arr[i]: #이진탐색으로 저장된 값들은 정렬되므로 맨 뒤의 값 비교. - cmp.append(arr[i]) - d[i] = len(cmp) - 1 - maxVal = d[i] - else: - d[i] = bisect_left(cmp, arr[i]) #현재 값이 어느 위치의 값에 해당하는지 비교. - cmp[d[i]] = arr[i] #cmp 업데이트. -print(maxVal) #최대 길이 출력 - -res = [] -for i in range(N, 0, -1): - if d[i] == maxVal: - res.append(arr[i]) - maxVal -= 1 -res.reverse() -print(*res) \ No newline at end of file diff --git a/Python_BOJ_2021/1406.py b/Python_BOJ_2021/1406.py deleted file mode 100644 index e0fe06c..0000000 --- a/Python_BOJ_2021/1406.py +++ /dev/null @@ -1,28 +0,0 @@ -# 에디터 -import sys -input = lambda :sys.stdin.readline().rstrip() - -left = list(input()) -right = [] - -T = int(input()) -while T: - T -= 1 - cmd = input() - if cmd[0] == 'L': - if len(left): - right.append(left.pop()) - elif cmd[0] == 'D': - if len(right): - left.append(right.pop()) - elif cmd[0] == 'B': - if len(left): - left.pop() - elif cmd[0] == 'P': - left.append(cmd[2]) - -ans = left -while len(right): - ans.append(right.pop()) - -print(''.join(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/14241.py b/Python_BOJ_2021/14241.py deleted file mode 100644 index da5a72c..0000000 --- a/Python_BOJ_2021/14241.py +++ /dev/null @@ -1,18 +0,0 @@ -# 슬라임 합치기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) -arr.sort() - -ans = 0 - -for _ in range(n-1): - a = arr.pop(len(arr)-1) - if len(arr) == 0: - break - ans += a * arr[len(arr)-1] - arr[len(arr)-1] = a + arr[len(arr)-1] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1427.py b/Python_BOJ_2021/1427.py deleted file mode 100644 index dc5fbb9..0000000 --- a/Python_BOJ_2021/1427.py +++ /dev/null @@ -1,6 +0,0 @@ -# 소트인사이드 - -a = list(input()) -a.sort(reverse=True) - -print(*a, sep='') \ No newline at end of file diff --git a/Python_BOJ_2021/14284.py b/Python_BOJ_2021/14284.py deleted file mode 100644 index e69de29..0000000 diff --git a/Python_BOJ_2021/1436.py b/Python_BOJ_2021/1436.py deleted file mode 100644 index 96e3baf..0000000 --- a/Python_BOJ_2021/1436.py +++ /dev/null @@ -1,13 +0,0 @@ -# 영화감독 숌 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -title = 666 - -while n: - if '666' in str(title): - n -= 1 - title += 1 - -print(title - 1) \ No newline at end of file diff --git a/Python_BOJ_2021/1439.py b/Python_BOJ_2021/1439.py deleted file mode 100644 index 64374e2..0000000 --- a/Python_BOJ_2021/1439.py +++ /dev/null @@ -1,20 +0,0 @@ -# 뒤집기 -import sys -input = lambda :sys.stdin.readline().rstrip() -s = list(input()) - -convert_1, convert_0 = 0, 0 - -for i in range(1, len(s)): - if s[i] != s[i-1]: - if s[i-1] == '0': - convert_1 += 1 - else: - convert_0 += 1 - -if s[-1] == '0': - convert_1 += 1 -else: - convert_0 += 1 - -print(min(convert_1, convert_0)) \ No newline at end of file diff --git a/Python_BOJ_2021/14405.py b/Python_BOJ_2021/14405.py deleted file mode 100644 index 404e19a..0000000 --- a/Python_BOJ_2021/14405.py +++ /dev/null @@ -1,6 +0,0 @@ -# 피카츄 -import sys - -s = sys.stdin.readline().rstrip() -s = s.replace('pi', ' ').replace('ka', ' ').replace('chu', ' ') -print('YES' if s.strip() == '' else 'NO') \ No newline at end of file diff --git a/Python_BOJ_2021/14425.py b/Python_BOJ_2021/14425.py deleted file mode 100644 index e43ecaf..0000000 --- a/Python_BOJ_2021/14425.py +++ /dev/null @@ -1,16 +0,0 @@ -# 문자열 집합 -import sys -input = lambda : sys.stdin.readline().rstrip() - -N, M = map(int, input().split()) - -S = set() -for _ in range(N): - S.add(input()) - -cnt = 0 -for _ in range(M): - if input() in S: - cnt += 1 - -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/1446.py b/Python_BOJ_2021/1446.py deleted file mode 100644 index f65824b..0000000 --- a/Python_BOJ_2021/1446.py +++ /dev/null @@ -1,23 +0,0 @@ -# 지름길 -import sys -input = lambda :sys.stdin.readline().rstrip() - -INF = int(1e9) - -n, d = map(int, input().split()) -graph = list() - -for _ in range(n): - from_, to_, weight = map(int, input().split()) - if to_ <= d: - graph.append([from_, to_, weight]) - -position = [i for i in range(d + 1)] -for i in range(d + 1): - if i != 0: - position[i] = min(position[i], position[i - 1] + 1) - - for j in graph: - if j[0] == i: - position[j[1]] = min(position[j[1]], position[j[0]] + j[2]) -print(position[d]) \ No newline at end of file diff --git a/Python_BOJ_2021/1449.py b/Python_BOJ_2021/1449.py deleted file mode 100644 index 2cbdeff..0000000 --- a/Python_BOJ_2021/1449.py +++ /dev/null @@ -1,17 +0,0 @@ -# 수리공 항승 -import sys -input = lambda : sys.stdin.readline().rstrip() - -N, L = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() - -tape = 1 -tape_length = arr[0] - 0.5 + L - -for i in range(1, N): - if tape_length < arr[i] + 0.5: - tape_length = arr[i] - 0.5 + L - tape += 1 - -print(tape) \ No newline at end of file diff --git a/Python_BOJ_2021/14496.py b/Python_BOJ_2021/14496.py deleted file mode 100644 index 721b265..0000000 --- a/Python_BOJ_2021/14496.py +++ /dev/null @@ -1,31 +0,0 @@ -from collections import deque - - -def bfs(a, b): - queue = deque() - queue.append(a) - check[a] = 0 - while queue: - node = queue.popleft() - if node == b: - return check[node] - - for i in graph[node]: - if check[i] == -1: - queue.append(i) - check[i] = check[node] + 1 - return -1 - - -a, b = map(int, input().split()) -n, m = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -for _ in range(m): - from_, to_ = map(int, input().split()) - if from_ == to_: continue - graph[from_].append(to_) - graph[to_].append(from_) - -print(graph) -check = [-1] * (n + 1) -print(bfs(a, b)) \ No newline at end of file diff --git a/Python_BOJ_2021/14497.py b/Python_BOJ_2021/14497.py deleted file mode 100644 index 5c8b27d..0000000 --- a/Python_BOJ_2021/14497.py +++ /dev/null @@ -1,30 +0,0 @@ -# 주난의 난 -from collections import deque - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n, m = map(int, input().split()) -x1, y1, x2, y2 = map(int, input().split()) -graph = [list(map(str, input())) for _ in range(n)] -visited = [[-1] * m for _ in range(n)] - - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - visited[x][y] = 0 - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m and visited[nx][ny] == -1: - if graph[nx][ny] == '1' or graph[nx][ny] == '#': - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - elif graph[nx][ny] == '0': - visited[nx][ny] = visited[x][y] - queue.appendleft((nx, ny)) - - -bfs(x1 - 1, y1 - 1) -print(visited[x2 - 1][y2 - 1]) \ No newline at end of file diff --git a/Python_BOJ_2021/14499.py b/Python_BOJ_2021/14499.py deleted file mode 100644 index 87666a5..0000000 --- a/Python_BOJ_2021/14499.py +++ /dev/null @@ -1,80 +0,0 @@ -# 주사위 굴리기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -N, M, x, y, K = map(int,input().split()) -graph = [list(map(int, input().split())) for _ in range(N)] -cmd = list(map(int, input().split())) - - -class Dice: - def __init__(self): - self.top = 0 - self.bottom = 0 - self.east = 0 - self.west = 0 - self.north = 0 - self.south = 0 - - -dice = Dice() - -for i in cmd: - if i == 1: - dx, dy = 0, 1 - nx, ny = x + dx, y + dy - - if 0 <= nx < N and 0 <= ny < M: - dice.east, dice.bottom, dice.west, dice.top = dice.top, dice.east, dice.bottom, dice.west - - if graph[nx][ny] == 0: - graph[nx][ny] = dice.bottom - else: - dice.bottom = graph[nx][ny] - graph[nx][ny] = 0 - print(dice.top) - x, y = nx, ny - - elif i == 2: - dx, dy = 0, -1 - nx, ny = x + dx, y + dy - - if 0 <= nx < N and 0 <= ny < M: - dice.west, dice.bottom, dice.east, dice.top = dice.top, dice.west, dice.bottom, dice.east - - if graph[nx][ny] == 0: - graph[nx][ny] = dice.bottom - else: - dice.bottom = graph[nx][ny] - graph[nx][ny] = 0 - print(dice.top) - x, y = nx, ny - - elif i == 3: - dx, dy = -1, 0 - nx, ny = x + dx, y + dy - - if 0 <= nx < N and 0 <= ny < M: - dice.north, dice.bottom, dice.south, dice.top = dice.top, dice.north, dice.bottom, dice.south - - if graph[nx][ny] == 0: - graph[nx][ny] = dice.bottom - else: - dice.bottom = graph[nx][ny] - graph[nx][ny] = 0 - print(dice.top) - x, y = nx, ny - - elif i == 4: - dx, dy = 1, 0 - nx, ny = x + dx, y + dy - - if 0 <= nx < N and 0 <= ny < M: - dice.south, dice.top, dice.north, dice.bottom = dice.top, dice.north, dice.bottom, dice.south - if graph[nx][ny] == 0: - graph[nx][ny] = dice.bottom - else: - dice.bottom = graph[nx][ny] - graph[nx][ny] = 0 - print(dice.top) - x, y = nx, ny \ No newline at end of file diff --git a/Python_BOJ_2021/14501.py b/Python_BOJ_2021/14501.py deleted file mode 100644 index bfde1ab..0000000 --- a/Python_BOJ_2021/14501.py +++ /dev/null @@ -1,14 +0,0 @@ -# 퇴사 -import sys -input = lambda : sys.stdin.readline().rstrip() - -N = int(input()) -arr = [list(map(int, input().split())) for _ in range(N)] -dp = [0] * (N+1) - -for i in range(N-1, -1, -1): - if arr[i][0] + i> N: - dp[i] = dp[i+1] - else: - dp[i] = max(dp[i+1], arr[i][1] + dp[i + arr[i][0]]) -print(dp[0]) \ No newline at end of file diff --git a/Python_BOJ_2021/14502.py b/Python_BOJ_2021/14502.py deleted file mode 100644 index 54bbce4..0000000 --- a/Python_BOJ_2021/14502.py +++ /dev/null @@ -1,59 +0,0 @@ -# 연구소 -import sys -sys.setrecursionlimit(1001) -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -tmp = [[0] * m for _ in range(n)] - -dx, dy = [-1, 1, 0, 0] , [0, 0, -1, 1] -ans = 0 - - -def spread_virus(x, y): - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < m: - if tmp[nx][ny] == 0: - tmp[nx][ny] = 2 - spread_virus(nx, ny) - - -def safe_area(): - cnt = 0 - for i in range(n): - for j in range(m): - if tmp[i][j] == 0: - cnt += 1 - return cnt - - -def dfs(wall): - global ans - if wall == 3: - for i in range(n): - for j in range(m): - tmp[i][j] = graph[i][j] - - for i in range(n): - for j in range(m): - if tmp[i][j] == 2: - spread_virus(i, j) - - ans = max(ans, safe_area()) - return - - for i in range(n): - for j in range(m): - if graph[i][j] == 0: - graph[i][j] = 1 - wall += 1 - dfs(wall) - graph[i][j] = 0 - wall -= 1 - - -dfs(0) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/14502_2.py b/Python_BOJ_2021/14502_2.py deleted file mode 100644 index 62c9239..0000000 --- a/Python_BOJ_2021/14502_2.py +++ /dev/null @@ -1,61 +0,0 @@ -# 연구소 -import sys -from collections import deque -sys.setrecursionlimit(100000) -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -tmp_graph = [[0] * m for _ in range(n)] -ans = 0 - - -def set_wall(wall_cnt): # DFS - global ans - if wall_cnt == 3: # 벽 3개 치고 - for i in range(n): - for j in range(m): - tmp_graph[i][j] = graph[i][j] # 그래프 복사 - - for i in range(n): - for j in range(m): - if tmp_graph[i][j] == 2: # 바이러스 있으면 - virus(i, j) # 바이러스 퍼트리기 - ans = max(ans, countSafe()) - return - - for i in range(n): - for j in range(m): - if graph[i][j] == 0: - graph[i][j] = 1 - wall_cnt += 1 - set_wall(wall_cnt) - graph[i][j] = 0 - wall_cnt -= 1 - - -def virus(x, y): # BFS - queue = deque() - queue.append([x, y]) - while queue: - xx, yy = queue.popleft() - for i in range(4): - nx, ny = xx + dx[i], yy + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if tmp_graph[nx][ny] == 0: - tmp_graph[nx][ny] = 2 - queue.append([nx, ny]) - - -def countSafe(): - cnt = 0 - for i in range(n): - for j in range(m): - if tmp_graph[i][j] == 0: - cnt += 1 - return cnt - - -set_wall(0) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/14503.py b/Python_BOJ_2021/14503.py deleted file mode 100644 index c3e7038..0000000 --- a/Python_BOJ_2021/14503.py +++ /dev/null @@ -1,66 +0,0 @@ -# 로봇 청소기 -from collections import deque -import sys -input = lambda: sys.stdin.readline().rstrip() - -dr, dc = [-1, 0, 1, 0], [0, 1, 0, -1] # 북 동 남 서 - - -def move_rotate(a): - if a == 0: # 북> 서 - return 3 - elif a == 1: # 동> 북 - return 0 - elif a == 2: # 남> 동 - return 1 - elif a == 3: # 서> 동 - return 2 - - -def move_back(b): - if b == 0: # 북> 남 - return 2 - elif b == 1: # 동> 서 - return 3 - elif b == 2: # 남> 북 - return 0 - elif b == 3: # 서> 동 - return 1 - - -def bfs(r, c, d): - ans = 1 - graph[r][c] = 2 - queue = deque([[r, c, d]]) - - while queue: - r, c, d = queue.popleft() - tmp_d = d - - for i in range(4): - tmp_d = move_rotate(tmp_d) - nr, nc = r + dr[tmp_d], c + dc[tmp_d] - - # case : a - if 0 <= nr < n and 0 <= nc < m and not graph[nr][nc]: - ans += 1 - graph[nr][nc] = 2 - queue.append([nr, nc, tmp_d]) - break - - elif i == 3: # case : c - nr, nc = r + dr[move_back(d)], c + dc[move_back(d)] - queue.append([nr, nc, d]) - - if graph[nr][nc] == 1: # case : d - return ans - - -n, m = map(int, input().split()) -r, c, d = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] - -print(bfs(r, c, d)) - - - diff --git a/Python_BOJ_2021/1459.py b/Python_BOJ_2021/1459.py deleted file mode 100644 index 2a045dd..0000000 --- a/Python_BOJ_2021/1459.py +++ /dev/null @@ -1,6 +0,0 @@ -# 걷기 - -x, y, w, s = map(int, input().split()) -X, Y = min(x, y), max(x, y) -m = (X + Y) % 2 -print(min((X + Y) * w, X * s + (Y - X) * w, (Y - m) * s + m * w)) \ No newline at end of file diff --git a/Python_BOJ_2021/14594.py b/Python_BOJ_2021/14594.py deleted file mode 100644 index 401b255..0000000 --- a/Python_BOJ_2021/14594.py +++ /dev/null @@ -1,31 +0,0 @@ -# 동방 프로젝트 (Small) - -n = int(input()) -m = int(input()) -parent = [0] * (n + 1) -for i in range(1, n + 1): - parent[i] = i - -def find(x): - if parent[x] != x: - parent[x] = find(parent[x]) - return parent[x] - -def union(x, y): - x = find(x) - y = find(y) - if x < y: - parent[y] = x - else: - parent[x] = y - -cnt = 0 -for i in range(m): - x, y = map(int, input().split()) - - for j in range(x, y + 1): - if find(j) != find(y): - union(j, y) - cnt += 1 - -print(n - cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/1461.py b/Python_BOJ_2021/1461.py deleted file mode 100644 index 3e267ff..0000000 --- a/Python_BOJ_2021/1461.py +++ /dev/null @@ -1,41 +0,0 @@ -# 도서관 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -books = list(map(int, input().split())) - -plus, minus = list(), list() -for i in range(n): - if books[i]>= 0: - plus.append(books[i]) - else: - minus.append(books[i]) - -plus = sorted(plus, reverse=True) - -for i in range(len(minus)): - minus[i] = minus[i] * -1 -minus = sorted(minus, reverse=True) - -idx, result, M = 0, 0, 0 -while idx < len(plus): - if plus[idx]> M: - result += plus[idx] - result += M - M = plus[idx] - else: - result += plus[idx] * 2 - idx += m - -idx = 0 -while idx < len(minus): - if minus[idx]> M: - result += minus[idx] - result += M - M = minus[idx] - else: - result += minus[idx] * 2 - idx += m - -print(result) \ No newline at end of file diff --git a/Python_BOJ_2021/1463.py b/Python_BOJ_2021/1463.py deleted file mode 100644 index aef5b7e..0000000 --- a/Python_BOJ_2021/1463.py +++ /dev/null @@ -1,18 +0,0 @@ -# 1로 만들기 - -import sys -input = lambda : sys.stdin.readline().rstrip() - -x = int(input()) -d = [0] * 1000001 - -for i in range(2, x + 1): - d[i] = d[i-1] + 1 - - if i % 3 == 0: - d[i] = min(d[i], d[i // 3] + 1) - - if i % 2 == 0: - d[i] = min(d[i], d[i // 2] + 1) - -print(d[x]) \ No newline at end of file diff --git a/Python_BOJ_2021/14650.py b/Python_BOJ_2021/14650.py deleted file mode 100644 index fc40d76..0000000 --- a/Python_BOJ_2021/14650.py +++ /dev/null @@ -1,23 +0,0 @@ -# 걷다보니 신천역 삼 -import sys -sys.setrecursionlimit(10000000) - -N = int(sys.stdin.readline().rstrip()) -ans = 0 - - -def calc(n, sum): - global ans - for i in range(3): - if n == 0 and i == 0: - continue - if n == N: - if sum % 3 == 0: - ans += 1 - return ans - else: - calc(n + 1, sum + i) - - -calc(0, 0) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/14659.py b/Python_BOJ_2021/14659.py deleted file mode 100644 index 9cfd3f8..0000000 --- a/Python_BOJ_2021/14659.py +++ /dev/null @@ -1,21 +0,0 @@ -# 한조서열정리하고옴ᄏᄏ -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -group = list(map(int, input().split())) - -kill_cnt = 0 -max_kill = 0 -ans = 0 - - -for i in group: - if i> max_kill: - max_kill = i - kill_cnt = 0 - else: - kill_cnt += 1 - ans = max(ans, kill_cnt) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/14681.py b/Python_BOJ_2021/14681.py deleted file mode 100644 index a50cddd..0000000 --- a/Python_BOJ_2021/14681.py +++ /dev/null @@ -1,21 +0,0 @@ -won = int(input()) -sea = int(input()) -sang = int(input()) -seung = int(input()) -kang = int(input()) - -if won < 40: - won = 40 -if sea < 40: - sea = 40 -if sang < 40: - sang = 40 -if seung < 40: - seung = 40 -if kang < 40: - kang = 40 - -sum = won + sea + sang + seung + kang -avg = sum / 5 - -print(int(avg)) diff --git a/Python_BOJ_2021/14720.py b/Python_BOJ_2021/14720.py deleted file mode 100644 index d66f245..0000000 --- a/Python_BOJ_2021/14720.py +++ /dev/null @@ -1,13 +0,0 @@ -# 우유 축제 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) -ans = 0 - -for i in range(n): - if arr[i] == ans % 3: - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/14754.py b/Python_BOJ_2021/14754.py deleted file mode 100644 index f722a7e..0000000 --- a/Python_BOJ_2021/14754.py +++ /dev/null @@ -1,18 +0,0 @@ -# Pizza Boxes -import sys -input = lambda : sys.stdin.readline().rstrip() - -x, y = map(int, input().split()) - -arr = [] -arr2 = set() - -for i in range(x): - row = list(map(int, input().split())) - arr2.add(max(row)) - arr.append(row) - -for j in range(y): - arr2.add(max(arr[i][j] for i in range(x))) - -print(sum(map(sum, arr)) - sum(arr2)) \ No newline at end of file diff --git a/Python_BOJ_2021/14888.py b/Python_BOJ_2021/14888.py deleted file mode 100644 index 649ed7b..0000000 --- a/Python_BOJ_2021/14888.py +++ /dev/null @@ -1,32 +0,0 @@ -# 연산자 끼워넣기 -import sys -input = lambda: sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) -add, sub, mul, div = map(int, input().split()) -_min, _max = 123456789, -123456789 - - -def dfs(i, res, add, sub, mul, div): - global _min, _max - if i == n: - _max = max(res, _max) - _min = min(res, _min) - return - - else: - if add: - dfs(i+1, res+arr[i], add-1, sub, mul, div) - if sub: - dfs(i+1, res-arr[i], add, sub-1, mul, div) - if mul: - dfs(i+1, res*arr[i], add, sub, mul-1, div) - if div: - dfs(i+1, int(res/arr[i]), add, sub, mul, div-1) - - -dfs(1, arr[0], add, sub, mul, div) - -print(_max) -print(_min) \ No newline at end of file diff --git a/Python_BOJ_2021/14889.py b/Python_BOJ_2021/14889.py deleted file mode 100644 index d531c6b..0000000 --- a/Python_BOJ_2021/14889.py +++ /dev/null @@ -1,33 +0,0 @@ -# 스타트와 링크 -import sys -sys.setrecursionlimit(100001) -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [list(map(int, input().split()))] -select = [0 for _ in range(n)] -ans = int(1e9) - - -def dfs(idx, cnt): - global ans - if cnt == n // 2: - start, link = 0, 0 - for i in range(n): - for j in range(n): - if select[i] and select[j]: - start += arr[i][j] - - elif not select[i] and not select[j]: - link += arr[i][j] - ans = min(ans, abs(start - link)) - - for i in range(idx, n): - if select[i]: continue - select[i] = 1 - dfs(i + 1, cnt + 1) - select[i] = 0 - - -dfs(0, 0) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/14889_2.py b/Python_BOJ_2021/14889_2.py deleted file mode 100644 index 685dfb3..0000000 --- a/Python_BOJ_2021/14889_2.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys -from itertools import combinations -input = lambda :sys.stdin.readline().rstrip() - -N = int(input()) -graph = [list(map(int, input().split())) for _ in range(N)] -tmp = [sum(i) + sum(j) for i, j in zip(graph, zip(*graph))] -all_stat = sum(tmp) // 2 - -print(min([abs(all_stat - sum(stat)) for stat in combinations(tmp, N // 2)])) - -print(tmp) -for i, j in zip(graph, zip(*graph)): - print(i, j) \ No newline at end of file diff --git a/Python_BOJ_2021/14890.py b/Python_BOJ_2021/14890.py deleted file mode 100644 index 0dbb9bb..0000000 --- a/Python_BOJ_2021/14890.py +++ /dev/null @@ -1,57 +0,0 @@ -# 경사로 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, l = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] - - -def check(arr): - now_pos = arr[0] - visited = [False for _ in range(n)] - - for row, height in enumerate(arr): - - if now_pos == height: - continue # 높이가 같으면 그냥 진행 - - elif now_pos + 1 == height: # 높은 곳으로 이동 할 떄, 남은 거리가 l보다 크거나 같으면 이동가능 - for j in range(row - 1, row - 1 - l, -1): - if j < 0 or now_pos != arr[j] or visited[j]: - return False - - visited[j] = True - now_pos = height - - elif now_pos - 1 == height: # 낮은 곳으로 이동 할 떄, 남은 거리가 l보다 크거나 같으면 이동가능 - for j in range(row, row + l): - if j>= n or now_pos - 1 != arr[j] or visited[j]: - return False - - visited[j] = True - now_pos = height - - else: # 높이 차이가 1 이상으로 나면 이동 불가 - return False - - return True - - -def solve(): - ans = 0 - for i in range(n): - if check(graph[i]): # 1 row씩 체크 - ans += 1 - - for j in range(n): - col = list() - for i in range(n): - col.append(graph[i][j]) - - if check(col): # 1 column씩 체크 - ans += 1 - - print(ans) - - -solve() \ No newline at end of file diff --git a/Python_BOJ_2021/14891.py b/Python_BOJ_2021/14891.py deleted file mode 100644 index 0665f1e..0000000 --- a/Python_BOJ_2021/14891.py +++ /dev/null @@ -1,37 +0,0 @@ -# 톱니바퀴 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - - -def cw_rotate(n, dir, graph): - if n == 4: return - - if graph[n - 1][2] != graph[n][6]: - cw_rotate(n + 1, -dir, graph) - graph[n].rotate(dir) - else: - return - - -def ccw_rotate(n, dir, graph): - if n == -1: return - - if graph[n + 1][6] != graph[n][2]: - ccw_rotate(n - 1, -dir, graph) - graph[n].rotate(dir) - else: - return - - -graph = [deque(map(int, input())) for _ in range(4)] -for _ in range(int(input())): - num, wise = map(int, input().split()) - cw_rotate(num, -wise, graph) - ccw_rotate(num - 2, -wise, graph) - graph[num - 1].rotate(wise) - -ans = 0 -for i in range(4): - ans += (2 ** i) * graph[i][0] -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/14916.py b/Python_BOJ_2021/14916.py deleted file mode 100644 index 513f82f..0000000 --- a/Python_BOJ_2021/14916.py +++ /dev/null @@ -1,23 +0,0 @@ -# 거스름돈 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -coin = 0 - -while True: - if n % 5 != 0: - n -= 2 - coin += 1 - - else: - coin += n / 5 - n = n % 5 - - if n == 0: - print(int(coin)) - break - - elif n < 0: - print(-1) - break \ No newline at end of file diff --git a/Python_BOJ_2021/14923.py b/Python_BOJ_2021/14923.py deleted file mode 100644 index 8987f90..0000000 --- a/Python_BOJ_2021/14923.py +++ /dev/null @@ -1,43 +0,0 @@ -# 미로 탈출 -from collections import deque -import sys -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfS(): - ans = 0 - queue = deque() - queue.append((hx, hy, 0)) - visited[0][hx][hy] = True - - while queue: - ans += 1 - size = len(queue) - while size> 0: - x, y, k = queue.popleft() - - for d in range(4): - nx, ny = x + dx[d], y + dy[d] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1: - if k == 0 and not visited[k + 1][nx][ny]: - if nx == ex and ny == ey: return ans - queue.append((nx, ny, 1)) - visited[k + 1][nx][ny] = True - else: - if not visited[k][nx][ny]: - if nx == ex and ny == ey: return ans - queue.append((nx, ny, k)) - visited[k][nx][ny] = True - size -= 1 - return -1 - - -n, m = map(int, input().split()) -hx, hy = map(lambda x: int(x) - 1, input().split()) -ex, ey = map(lambda x: int(x) - 1, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [[[0] * m for _ in range(n)] for _ in range(2)] -print(bfS()) \ No newline at end of file diff --git a/Python_BOJ_2021/14938.py b/Python_BOJ_2021/14938.py deleted file mode 100644 index cf3a261..0000000 --- a/Python_BOJ_2021/14938.py +++ /dev/null @@ -1,33 +0,0 @@ -# 서강그라운드 -# 27632719 hoijae0194 14938 맞았습니다!! 28776 536 Python 3 / 수정 678 -import sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - -n, m, r = map(int,input().split()) -items = list(map(int, input().split())) -graph = [[INF] * (n + 1) for _ in range(n + 1)] - -for i in range(1, n + 1): - graph[i][i] = 0 - -for _ in range(r): - a, b, l = map(int, input().split()) - graph[a][b] = l - graph[b][a] = l - -for k in range(1, n + 1): - for a in range(1, n + 1): - for b in range(1, n + 1): - graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) - -ans = 0 -for i in range(1, n + 1): - tmp = 0 - for j in range(1, n + 1): - if graph[i][j] <= m: - tmp += items[j - 1] - - ans = max(ans, tmp) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1504.py b/Python_BOJ_2021/1504.py deleted file mode 100644 index bde11ab..0000000 --- a/Python_BOJ_2021/1504.py +++ /dev/null @@ -1,47 +0,0 @@ -# 특정한 최단 경로 -import heapq, sys -input = lambda : sys.stdin.readline().rstrip() - -INF = int(1e9) -n, e = map(int, input().split()) -edges = [[] for _ in range(n + 1)] - -for _ in range(e): - a, b, c = map(int, input().split()) - edges[a].append((c, b)) - edges[b].append((c, a)) - -v1, v2 = map(int, input().split()) - - -def dijikstra(s): - queue = list() - heapq.heappush(queue, (0, s)) - distance = [INF] * (n + 1) - distance[s] = 0 - while queue: - cost, now = heapq.heappop(queue) - if distance[now] < cost: - continue - for cost2, now2 in edges[now]: - cost3 = cost + cost2 - if distance[now2]> cost3: - distance[now2] = cost3 - heapq.heappush(queue, (cost3, now2)) - return distance - - -ans = INF -a = dijikstra(1)[v1] -b = dijikstra(v1)[v2] -c = dijikstra(v2)[n] - -d = dijikstra(1)[v2] -e = dijikstra(v2)[v1] -f = dijikstra(v1)[n] -ans = min(ans, a + b + c, d + e + f) - -if ans>= INF: - print(-1) -else: - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1525.py b/Python_BOJ_2021/1525.py deleted file mode 100644 index 0c4932d..0000000 --- a/Python_BOJ_2021/1525.py +++ /dev/null @@ -1,47 +0,0 @@ -# 퍼즐 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -graph = [list(map(int, input().split())) for _ in range(3)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(): - while queue: - val = queue.popleft() - - if val == 123456789: - print(distance[val]) - return - - s = str(val) - k = s.find('9') - x, y = k // 3, k % 3 - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < 3 and 0 <= ny < 3: - nk = nx * 3 + ny - ns = list(s) - ns[k], ns[nk] = ns[nk], ns[k] - nd = int(''.join(ns)) - if not distance.get(nd): - distance[nd] = distance[val] + 1 - queue.append(nd) - - print(-1) - - -m = 0 -queue, distance = deque(), dict() -for i in range(3): - for j in range(3): - n = graph[i][j] - if not n: - n = 9 - m = m * 10 + n - -queue.append(m) -distance[m] = 0 -bfs() \ No newline at end of file diff --git a/Python_BOJ_2021/1535.py b/Python_BOJ_2021/1535.py deleted file mode 100644 index ad85718..0000000 --- a/Python_BOJ_2021/1535.py +++ /dev/null @@ -1,14 +0,0 @@ -N = int(input()) -L = [int(x) for x in input().split()] -J = [int(x) for x in input().split()] -L, J = [0] + L, [0] + J -dp = [[0 for _ in range(101)] for _ in range(N + 1)] - -for i in range(1, N + 1): - for j in range(1, 101): - if L[i] <= j: - dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - L[i]] + J[i]) - else: - dp[i][j] = dp[i - 1][j] - -print(dp[N][99]) \ No newline at end of file diff --git a/Python_BOJ_2021/1541.py b/Python_BOJ_2021/1541.py deleted file mode 100644 index 7cc4ecb..0000000 --- a/Python_BOJ_2021/1541.py +++ /dev/null @@ -1,18 +0,0 @@ -# 잃어버린 괄호 - -num = list(map(str, input().split('-'))) - -if '+' in num[0]: - arr = list(map(int, num[0].split('+'))) - ans = sum(arr) -else: - ans = int(num[0]) - -for i in range(1, len(num)): - if '+' in num[i]: - arr = list(map(int, num[i].split('+'))) - ans -= sum(arr) - else: - ans -= int(num[i]) - -print(ans) diff --git a/Python_BOJ_2021/1543.py b/Python_BOJ_2021/1543.py deleted file mode 100644 index 8b2fc90..0000000 --- a/Python_BOJ_2021/1543.py +++ /dev/null @@ -1,25 +0,0 @@ -# 문서검색 -import sys -input = lambda :sys.stdin.readline().rstrip() - -string = list(input()) -i = list(input()) - -cnt = 0 -current_idx = 0 - -while current_idx < len(string): - for idx in range(len(i)): - if current_idx + idx>= len(string): - current_idx += 1 - break - - if i[idx] != string[current_idx + idx]: - current_idx += 1 - break - - else: - cnt += 1 - current_idx += len(i) - -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/1546.py b/Python_BOJ_2021/1546.py deleted file mode 100644 index de63d12..0000000 --- a/Python_BOJ_2021/1546.py +++ /dev/null @@ -1,17 +0,0 @@ -n = int(input()) -score = list(map(int, input().split())) - -M = max(score) - -new_list = [] -sum = 0 - -for i in range(n): - new_avg = score[i] / M * 100 - new_list.append(new_avg) - sum = new_list[i] + sum - -avg = sum / n - -print(avg) - diff --git a/Python_BOJ_2021/15596.py b/Python_BOJ_2021/15596.py deleted file mode 100644 index c359487..0000000 --- a/Python_BOJ_2021/15596.py +++ /dev/null @@ -1,11 +0,0 @@ -# 정수 N개의 합 - -def solve(a): - ans = 0 - for i in range(len(a)): - ans += a[i] - return ans - -a = list(map(int,input().split())) - -print(solve(a)) \ No newline at end of file diff --git a/Python_BOJ_2021/15649 - python.py b/Python_BOJ_2021/15649 - python.py deleted file mode 100644 index 4471b25..0000000 --- a/Python_BOJ_2021/15649 - python.py +++ /dev/null @@ -1,9 +0,0 @@ -# N과 M(1) - -from itertools import permutations -import sys - -n, m = map(int, sys.stdin.readline().rstrip().split()) - -for n in permutations(range(1, n+1), m): - print(*n) \ No newline at end of file diff --git a/Python_BOJ_2021/15649.py b/Python_BOJ_2021/15649.py deleted file mode 100644 index ed0ff53..0000000 --- a/Python_BOJ_2021/15649.py +++ /dev/null @@ -1,27 +0,0 @@ -# N과 M - -N, M = map(int, input().split()) - -check = [False] * (N + 1) -ans = [0] * M - - -def recursive(idx, n, m): - if idx == m: - for i in range(m): - print(ans[i], end=' ') - print() - - return - - for i in range(1, n + 1): - if check[i]: - continue - - check[i] = True - ans[idx] = i - recursive(idx + 1, n, m) - check[i] = False - - -recursive(0, N, M) \ No newline at end of file diff --git a/Python_BOJ_2021/15650.py b/Python_BOJ_2021/15650.py deleted file mode 100644 index 5f56444..0000000 --- a/Python_BOJ_2021/15650.py +++ /dev/null @@ -1,9 +0,0 @@ -# N과 M(2) - -from itertools import combinations -import sys - -n, m = map(int, sys.stdin.readline().rstrip().split()) - -for n in combinations(range(1, n+1), m): - print(*n) \ No newline at end of file diff --git a/Python_BOJ_2021/15651.py b/Python_BOJ_2021/15651.py deleted file mode 100644 index bfaf620..0000000 --- a/Python_BOJ_2021/15651.py +++ /dev/null @@ -1,9 +0,0 @@ -# N과 M(3) - -from itertools import product -import sys - -n, m = map(int, sys.stdin.readline().rstrip().split()) - -for n in product(range(1, n+1), repeat=m): - print(*n) diff --git a/Python_BOJ_2021/15652.py b/Python_BOJ_2021/15652.py deleted file mode 100644 index 5be29cb..0000000 --- a/Python_BOJ_2021/15652.py +++ /dev/null @@ -1,9 +0,0 @@ -# N과 M(4) - -import itertools -import sys - -n, m = map(int, sys.stdin.readline().rstrip().split()) - -for n in itertools.combinations_with_replacement(range(1, n+1), m): - print(*n) \ No newline at end of file diff --git a/Python_BOJ_2021/15654.py b/Python_BOJ_2021/15654.py deleted file mode 100644 index 11ce98e..0000000 --- a/Python_BOJ_2021/15654.py +++ /dev/null @@ -1,23 +0,0 @@ -# n과 m (5) - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) -isUsed = [0] * (n + 1) - -def Recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(n): - if isUsed[i]: continue - isUsed[i] = 1 - ans[depth] = arr[i] - Recursive(depth + 1) - isUsed[i] = 0 - -Recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2021/15655.py b/Python_BOJ_2021/15655.py deleted file mode 100644 index 2d13f03..0000000 --- a/Python_BOJ_2021/15655.py +++ /dev/null @@ -1,20 +0,0 @@ -# N과 M(6) - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) - - -def Combination(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(start, len(arr)): - ans[depth] = arr[i] - Combination(depth + 1, i + 1) - -Combination(0, 0) \ No newline at end of file diff --git a/Python_BOJ_2021/15656.py b/Python_BOJ_2021/15656.py deleted file mode 100644 index 720e71b..0000000 --- a/Python_BOJ_2021/15656.py +++ /dev/null @@ -1,20 +0,0 @@ -# n과 m (7) -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) - - -def Recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(n): - ans[depth] = arr[i] - Recursive(depth + 1) - - -Recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2021/15657.py b/Python_BOJ_2021/15657.py deleted file mode 100644 index edbe8f0..0000000 --- a/Python_BOJ_2021/15657.py +++ /dev/null @@ -1,20 +0,0 @@ -# N과 M(8) - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) - - -def Combination(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(start, len(arr)): - ans[depth] = arr[i] - Combination(depth + 1, i) - -Combination(0, 0) \ No newline at end of file diff --git a/Python_BOJ_2021/15658.py b/Python_BOJ_2021/15658.py deleted file mode 100644 index 2a0276f..0000000 --- a/Python_BOJ_2021/15658.py +++ /dev/null @@ -1,42 +0,0 @@ -import sys -sys.setrecursionlimit(100001) - -n = int(input()) -arr = list(map(int, input().split())) -op = list(map(int, input().split())) - -max_val = -int(1e9) -min_val = int(1e9) - - -def dfs(idx, ans): - global max_val, min_val - if idx == n: - max_val = max(max_val, ans) - min_val = min(min_val, ans) - return - - if op[0]> 0: - op[0] -= 1 - dfs(idx + 1, ans + arr[idx]) - op[0] += 1 - - if op[1]> 0: - op[1] -= 1 - dfs(idx + 1, ans - arr[idx]) - op[1] += 1 - - if op[2]> 0: - op[2] -= 1 - dfs(idx + 1, ans * arr[idx]) - op[2] += 1 - - if op[3]> 0: - op[3] -= 1 - dfs(idx + 1, int(ans / arr[idx])) - op[3] += 1 - - -dfs(1, arr[0]) -print(max_val) -print(min_val) \ No newline at end of file diff --git a/Python_BOJ_2021/15663.py b/Python_BOJ_2021/15663.py deleted file mode 100644 index 1af1718..0000000 --- a/Python_BOJ_2021/15663.py +++ /dev/null @@ -1,27 +0,0 @@ -# n과 m (9) - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) -isUsed = [0] * (n + 1) - - -def Subset(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - overlap = 0 - for i in range(n): - if isUsed[i]: continue - elif overlap != arr[i]: - isUsed[i] = 1 - ans[depth] = arr[i] - overlap = arr[i] - Subset(depth + 1) - isUsed[i] = 0 - - -Subset(0) \ No newline at end of file diff --git a/Python_BOJ_2021/15664.py b/Python_BOJ_2021/15664.py deleted file mode 100644 index 402a46e..0000000 --- a/Python_BOJ_2021/15664.py +++ /dev/null @@ -1,27 +0,0 @@ -# n과 m(10) - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) -chk = [0] * (n + 1) - - -def Recursive(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - overlap = 0 - for i in range(start, n): - if chk[i]: continue - if arr[i] != overlap: - chk[i] = 1 - ans[depth] = arr[i] - Recursive(depth+1, i + 1) - overlap = arr[i] - chk[i] = 0 - -Recursive(0, 0) \ No newline at end of file diff --git a/Python_BOJ_2021/15665.py b/Python_BOJ_2021/15665.py deleted file mode 100644 index 315b91a..0000000 --- a/Python_BOJ_2021/15665.py +++ /dev/null @@ -1,24 +0,0 @@ -# n과 m (11) - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) - - -def Recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - overlap = 0 - for i in range(n): - if overlap == arr[i]: continue - ans[depth] = arr[i] - Recursive(depth + 1) - overlap = arr[i] - - -Recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2021/15666.py b/Python_BOJ_2021/15666.py deleted file mode 100644 index bde0967..0000000 --- a/Python_BOJ_2021/15666.py +++ /dev/null @@ -1,24 +0,0 @@ -# n과 m (12) - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() -ans = [0] * (n + 1) - - -def Subset(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - overlap = 0 - for i in range(start, n): - if overlap != arr[i]: - ans[depth] = arr[i] - Subset(depth + 1, i) - overlap = arr[i] - - -Subset(0, 0) \ No newline at end of file diff --git a/Python_BOJ_2021/15684.py b/Python_BOJ_2021/15684.py deleted file mode 100644 index 7eac55e..0000000 --- a/Python_BOJ_2021/15684.py +++ /dev/null @@ -1,53 +0,0 @@ -# 사다리 조작 -import sys -input = lambda :sys.stdin.readline().rstrip() -sys.setrecursionlimit(100000) - -n, m, h = map(int, input().split()) -board = [[False] * n for _ in range(h)] -if m == 0: - print(0) - exit(0) -for _ in range(m): - a, b = map(int, input().split()) - board[a - 1][b - 1] = True - - -def checkBoard(): - for start in range(n): - k = start - for j in range(h): - if board[j][k]: - k += 1 - elif k> 0 and board[j][k - 1]: - k -= 1 - if k != start: return False - return True - - -def dfs(depth, x, y): - global answer - if checkBoard(): - answer = min(answer, depth) - return - elif depth == 3 or answer <= depth: - return - - for i in range(x, h): - if i == x: - k = y - else: - k = 0 - - for j in range(k, n - 1): - if not board[i][j] and not board[i][j + 1]: - if j> 0 and board[i][j - 1]: - continue - board[i][j] = True - dfs(depth + 1, i, j + 2) - board[i][j] = False - - -answer = 4 -dfs(0, 0, 0) -print(answer if answer < 4 else -1) \ No newline at end of file diff --git a/Python_BOJ_2021/15686.py b/Python_BOJ_2021/15686.py deleted file mode 100644 index c1a1026..0000000 --- a/Python_BOJ_2021/15686.py +++ /dev/null @@ -1,37 +0,0 @@ -# 치킨 배달 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -ans, home, chicken, tmp = int(1e9), list(), list(), list() - - -def solve(i, cnt): - global ans - if i> len(chicken): - return - if cnt == m: - s = 0 - for hx, hy in home: - dist = int(1e9) - for j in tmp: - cx, cy = chicken[j] - dist = min(dist, abs(hx - cx) + abs(hy - cy)) - s += dist - ans = min(ans, s) - return - tmp.append(i) - solve(i + 1, cnt + 1) - tmp.pop() - solve(i + 1, cnt) - - -for i in range(n): - for j in range(n): - if graph[i][j] == 1: - home.append((i + 1, j + 1)) - elif graph[i][j] == 2: - chicken.append((i + 1, j + 1)) -solve(0, 0) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/15813.py b/Python_BOJ_2021/15813.py deleted file mode 100644 index 2a674f7..0000000 --- a/Python_BOJ_2021/15813.py +++ /dev/null @@ -1,12 +0,0 @@ -# 너의 이름은 몇 점이니? -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -name = input() -sum = 0 - -for i in range(n): - sum += int(ord(name[i]) - ord('A')) + 1 - -print(sum) \ No newline at end of file diff --git a/Python_BOJ_2021/15814.py b/Python_BOJ_2021/15814.py deleted file mode 100644 index 47abd48..0000000 --- a/Python_BOJ_2021/15814.py +++ /dev/null @@ -1,7 +0,0 @@ -# 야바위 대장 - -s = list(map(str, input())) -for _ in range(int(input())): - a, b = map(int, input().split()) - s[a], s[b] = s[b], s[a] -print(''.join(s)) \ No newline at end of file diff --git a/Python_BOJ_2021/15829.py b/Python_BOJ_2021/15829.py deleted file mode 100644 index eacd586..0000000 --- a/Python_BOJ_2021/15829.py +++ /dev/null @@ -1,10 +0,0 @@ -# Hashing -import sys -input = lambda : sys.stdin.readline().rstrip() - -l, tmp, ans = int(input()), input(), 0 - -for i in range(l): - ans += (ord(tmp[i]) - 96) * (31 ** i) - -print(ans % 1234567891) \ No newline at end of file diff --git a/Python_BOJ_2021/15874.py b/Python_BOJ_2021/15874.py deleted file mode 100644 index 1684039..0000000 --- a/Python_BOJ_2021/15874.py +++ /dev/null @@ -1,25 +0,0 @@ -# Caesar Cipher - -k, l = map(int, input().split()) -k %= 26 -s = input() - -if k == 0: print(s) -else: - result = "" - for i in range(l): - if s[i].isalpha(): - if s[i].isupper(): - a = ord(s[i]) - ord('A') - a += k - a %= 26 - result += chr(a + ord('A')) - else: - a = ord(s[i]) - ord('a') - a += k - a %= 26 - result += chr(a + ord('a')) - else: - result += s[i] - - print(result) \ No newline at end of file diff --git a/Python_BOJ_2021/15903.py b/Python_BOJ_2021/15903.py deleted file mode 100644 index c08072c..0000000 --- a/Python_BOJ_2021/15903.py +++ /dev/null @@ -1,14 +0,0 @@ -# 카드 합체 놀이 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int,input().split()) -cards = list(map(int, input().split())) - -for _ in range(m): - cards.sort() - new_num = cards[0] + cards[1] - cards[0], cards[1] = new_num, new_num - -ans = sum(cards) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/15904.py b/Python_BOJ_2021/15904.py deleted file mode 100644 index 294b76a..0000000 --- a/Python_BOJ_2021/15904.py +++ /dev/null @@ -1,21 +0,0 @@ -# UCPC는 무엇의 약자일까? -import sys -input = lambda : sys.stdin.readline().rstrip() - -arr = input() -check_list = ['U', 'C', 'P', 'C'] -check = True - -for i in range(len(check_list)): - if check_list[i] in arr: - check = True - idx = arr.find(check_list[i]) - arr = arr[idx + 1:] - else: - check = False - break - -if check: - print('I love UCPC') -else: - print('I hate UCPC') \ No newline at end of file diff --git a/Python_BOJ_2021/15993.py b/Python_BOJ_2021/15993.py deleted file mode 100644 index 898f196..0000000 --- a/Python_BOJ_2021/15993.py +++ /dev/null @@ -1,19 +0,0 @@ -# 1, 2, 3 더하기 8 -import sys -input = lambda : sys.stdin.readline().rstrip() - -odd, even = 0, 1 # 홀수, 짝수 -divisor = 1000000009 -dp = [[0] * 100001 for _ in range(2)] - -dp[odd][1] = 1 -dp[odd][2], dp[even][2] = 1, 1 -dp[odd][3], dp[even][3] = 2, 2 - -for i in range(4, 100001): - dp[odd][i] = (dp[even][i - 1] + dp[even][i - 2] + dp[even][i - 3]) % divisor - dp[even][i] = (dp[odd][i - 1] + dp[odd][i - 2] + dp[odd][i - 3]) % divisor - -for _ in range(int(input())): - n = int(input()) - print(dp[odd][n], dp[even][n]) \ No newline at end of file diff --git a/Python_BOJ_2021/1600.py b/Python_BOJ_2021/1600.py deleted file mode 100644 index d6dcfc9..0000000 --- a/Python_BOJ_2021/1600.py +++ /dev/null @@ -1,46 +0,0 @@ -# 말이 되고픈 원숭이 -# 27630824 hoijae0194 1600 맞았습니다!! 51220 5716 Python 3 / 수정 1296 - -from collections import deque -import sys -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -kx, ky = [2, 1, 2, 1, -2, -1, -2, -1], [1, 2, -1, -2, 1, 2, -1, -2] - - -def bfs(): - global ans - queue.append([0, 0, 0, 0]) - visited[0][0][0] = 0 - while queue: - x, y, k, cnt = queue.popleft() - - if x == h - 1 and y == w - 1: - ans = visited[x][y][k] - break - if k < K: - for d in range(8): - nx, ny = x + kx[d], y + ky[d] - if 0 <= nx < h and 0 <= ny < w: - if not visited[nx][ny][k + 1] and graph[nx][ny] == 0: - visited[nx][ny][k + 1] = cnt + 1 - queue.append([nx, ny, k + 1, cnt + 1]) - - for d in range(4): - nx, ny = x + dx[d], y + dy[d] - if 0 <= nx < h and 0 <= ny < w: - if not visited[nx][ny][k] and graph[nx][ny] == 0: - visited[nx][ny][k] = cnt + 1 - queue.append([nx, ny, k, cnt + 1]) - return ans - - -K = int(input()) -w, h = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(h)] -visited = [[[0 for _ in range(K + 1)] for _ in range(w)] for _ in range(h)] - -ans = -1 -queue = deque() -print(bfs()) \ No newline at end of file diff --git a/Python_BOJ_2021/16120.py b/Python_BOJ_2021/16120.py deleted file mode 100644 index bdcf696..0000000 --- a/Python_BOJ_2021/16120.py +++ /dev/null @@ -1,18 +0,0 @@ -# PPAP -import sys - -s = sys.stdin.readline().rstrip().upper() -stack = [] - -for i in range(len(s)): - stack.append(s[i]) - if len(stack)>= 4: - if stack[-4:] == ["P", "P", "A", "P"]: - for _ in range(4): - stack.pop() - stack.append('P') - -if stack == ["P", "P", "A", "P"] or stack == ['P']: - print("PPAP") -else: - print("NP") \ No newline at end of file diff --git a/Python_BOJ_2021/16162.py b/Python_BOJ_2021/16162.py deleted file mode 100644 index dae6e94..0000000 --- a/Python_BOJ_2021/16162.py +++ /dev/null @@ -1,14 +0,0 @@ -# 가희와 3단 고음 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, a, d = map(int, input().split()) -arr = list(map(int, input().split())) -ans, now = 0, a - -for i in range(n): - if arr[i] == now: - ans += 1 - now += d - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/16171.py b/Python_BOJ_2021/16171.py deleted file mode 100644 index 939770a..0000000 --- a/Python_BOJ_2021/16171.py +++ /dev/null @@ -1,16 +0,0 @@ -# 나는 친구가 적다 (Small) - -s = input() -k = input() - -ss = '' -for i in range(len(s)): - if s[i].isdigit(): - continue - else: - ss += s[i] - -if k in ss: - print(1) -else: - print(0) \ No newline at end of file diff --git a/Python_BOJ_2021/16189.py b/Python_BOJ_2021/16189.py deleted file mode 100644 index bca7c77..0000000 --- a/Python_BOJ_2021/16189.py +++ /dev/null @@ -1 +0,0 @@ -t = input();print('YNEOS'[t!= t[::-1]::2]) \ No newline at end of file diff --git a/Python_BOJ_2021/16208.py b/Python_BOJ_2021/16208.py deleted file mode 100644 index 8d073ee..0000000 --- a/Python_BOJ_2021/16208.py +++ /dev/null @@ -1,17 +0,0 @@ -# 귀찮음 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) -arr.sort(reverse=True) -ans = 0 - -for i in range(n-1): - a = arr.pop(len(arr)-1) - if len(arr) == 0: - break - ans += sum(arr) * a - - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/16234.py b/Python_BOJ_2021/16234.py deleted file mode 100644 index 60df980..0000000 --- a/Python_BOJ_2021/16234.py +++ /dev/null @@ -1,54 +0,0 @@ -# 인구 이동 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, l, r = map(int, input().split()) -A = [list(map(int, input().split())) for _ in range(n)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(i, j): - queue = deque() - queue.append([i, j]) - - tmp = list() - tmp.append([i, j]) - - while queue: - x, y = queue.popleft() - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny]: - if l <= abs(A[nx][ny] - A[x][y]) <= r: - visited[nx][ny] = True - queue.append([nx, ny]) - tmp.append([nx, ny]) - return tmp - - -cnt = 0 -while True: - flag = False - visited = [[False] * n for _ in range(n)] - for i in range(n): - for j in range(n): - if not visited[i][j]: - visited[i][j] = True - tmp = bfs(i, j) - print(tmp) - - if len(tmp)> 1: - flag = True - num = sum([A[x][y] for x, y in tmp]) // len(tmp) - - for x, y in tmp: - A[x][y] = num - if not flag: break - cnt += 1 - -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/16235.py b/Python_BOJ_2021/16235.py deleted file mode 100644 index 7fcd365..0000000 --- a/Python_BOJ_2021/16235.py +++ /dev/null @@ -1,68 +0,0 @@ -# 나무 재테크 -import sys -inpud = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0, -1, -1, 1, 1], [0, 0, -1, 1, -1, 1, 1, -1] - -n, m, k = map(int, input().split()) # 그래프 크기, 나무 갯수, k년후 -arr = [list(map(int, input().split())) for _ in range(n)] -tree = [[[] for _ in range(n)] for _ in range(n)] - -for _ in range(m): - x, y, z = map(int, input().split()) # x, y, 나무의 나이 - tree[x - 1][y - 1].append(z) - -graph = [[5 for _ in range(n)] for _ in range(n)] # 그래프를 초기화 시켜줌 - -for _ in range(k): - # 봄 - for i in range(n): - for j in range(n): - if len(tree[i][j]) <= 0: continue # 나무가 없는 tree 배열은 스킵 - tree[i][j].sort() # 어린 나무 우선으로 양분을 먹기에 오름차순 정렬해줌 - - idx = 0 - - while idx < len(tree[i][j]): - if tree[i][j][idx] <= graph[i][j]: # 토양의 양분을 먹을 수 있다면 - graph[i][j] -= tree[i][j][idx] # 쪽쪽 - tree[i][j][idx] += 1 # 나이 1살+ - idx += 1 - # 여름 - else: # 토양의 양분을 먹을 수 없다면 - die = tree[i][j][idx:] - # 그 나무 뒤에있는 모든 나무들 또한 양분을 못 먹어서 죽으니까 - for now in die: # 죽어서 양분됨 - graph[i][j] += (now // 2) # 냠냠 - tree[i][j] = tree[i][j][:idx] # 양분을 먹을 수 있는 나무만 남음 - break - - - # 가을 - for i in range(n): - for j in range(n): - child = 0 - - if tree[i][j]: - for age in tree[i][j]: - if age % 5 == 0: # 나무의 나이가 5의 배수라면 - child += 1 # 애 하나 증가 - - if child> 0: # 애가 하나라도 있다면 - for k in range(8): # 팔방에 씨뿌리기 - nx, ny = i + dx[k], j + dy[k] - if 0 <= nx < n and 0 <= ny < n: # 그래프 범위내에서 - for _ in range(child): - tree[nx][ny].append(1) # 씨를 뿌려줍니다 - - # 겨울 - for i in range(n): - for j in range(n): - graph[i][j] += arr[i][j] # 양분 보충 - -ans = 0 -for i in range(n): - for j in range(n): - ans += len(tree[i][j]) # tree 그래프에 있는 나무 갯수 출력 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/16236.py b/Python_BOJ_2021/16236.py deleted file mode 100644 index a46996a..0000000 --- a/Python_BOJ_2021/16236.py +++ /dev/null @@ -1,76 +0,0 @@ -# 아기 상어 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(x, y): - global cnt, shark_size, start_point, answer - - queue = deque() - queue.append([x, y]) - - visited = [[False] * n for _ in range(n)] - visited[x][y] = True - - food = [] - state = False - level = 0 - - while queue: - level += 1 - - for _ in range(len(queue)): - x, y = queue.popleft() - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny]: - visited[nx][ny] = True - - if graph[nx][ny] == 0 or graph[nx][ny] == shark_size: - queue.append([nx, ny]) - elif 0 < graph[nx][ny] < shark_size: - food.append([nx, ny]) - state = True - - if state: break - - if state: - food.sort(key=lambda x: [x[0], x[1]]) - - graph[food[0][0]][food[0][1]] = 9 - graph[start_point[0]][start_point[1]] = 0 - start_point = food[0] - - cnt += 1 - answer += level - - if cnt == shark_size: - shark_size += 1 - cnt = 0 - else: pass - return state - - -n = int(input()) -graph = list() - -cnt, shark_size, start_point, answer = 0, 2, 0, 0 - -for i in range(n): - data = list(map(int, input().split())) - graph.append(data) - - for j, e in enumerate(data): - if e == 9: - start_point = [i, j] - -while True: - condition = bfs(start_point[0], start_point[1]) - if not condition: break - -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/1629.py b/Python_BOJ_2021/1629.py deleted file mode 100644 index bcbdb85..0000000 --- a/Python_BOJ_2021/1629.py +++ /dev/null @@ -1,16 +0,0 @@ -import sys -a, b, c = map(int, sys.stdin.readline().rstrip().split()) - - -def pow(a, b, c): - if b == 1: - return a % c - val = pow(a, b//2, c) - val = val * val % c - if b % 2 == 0: - return val - return val * a % c - - -print(pow(a, b, c)) - diff --git a/Python_BOJ_2021/16435.py b/Python_BOJ_2021/16435.py deleted file mode 100644 index 8818c1a..0000000 --- a/Python_BOJ_2021/16435.py +++ /dev/null @@ -1,13 +0,0 @@ -# 스네이크버드 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, l = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort() - -for i in range(n): - if arr[i] <= l: - l += 1 - -print(l) \ No newline at end of file diff --git a/Python_BOJ_2021/16455.py b/Python_BOJ_2021/16455.py deleted file mode 100644 index 5621c51..0000000 --- a/Python_BOJ_2021/16455.py +++ /dev/null @@ -1,40 +0,0 @@ -# import heapq -# def kth(a, k): -# heap = [] -# for i in a: -# heapq.heappush(heap, i) -# -# cnt = 0 -# ans = 0 -# while cnt < k: -# ans = heapq.heappop(heap) -# cnt += 1 -# return ans - -def kth(a, k): - target = k - 1 - start = 0 - end = len(a) - 1 - - while True: - i, j = start, end - - while True: - while i <= end and a[i] <= a[start]: - i += 1 - while a[j]> a[start]: - j -= 1 - if i>= j: break - a[i], a[j] = a[j], a[i] - a[start], a[j] = a[j], a[start] - if j == target: - return a[j] - elif j < target: - start = j + 1 - else: - end = j - 1 - - - -arr = [3,1,4,5,2] -print(kth(arr, 2)) \ No newline at end of file diff --git a/Python_BOJ_2021/1652.py b/Python_BOJ_2021/1652.py deleted file mode 100644 index 1a0bb12..0000000 --- a/Python_BOJ_2021/1652.py +++ /dev/null @@ -1,52 +0,0 @@ -# 누울 자리를 찾아라 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -arr2 = [list(input()) for _ in range(n)] -row_ans, col_ans = 0, 0 - - -def find_row(arr): - cnt, row_cnt = 0, 0 - - for i in arr: - if i == '.': - cnt += 1 - else: - if cnt>= 2: - row_cnt += 1 - cnt = 0 - else: - cnt = 0 - - if cnt>= 2: - return row_cnt + 1 - else: - return row_cnt - - -def find_col(arr): - col_cnt = 0 - for i in range(len(arr)): - cnt = 0 - for j in range(len(arr)): - if arr[j][i] == '.': - cnt += 1 - else: - if cnt>= 2: - col_cnt += 1 - cnt = 0 - else: - cnt = 0 - - if cnt>= 2: - col_cnt += 1 - return col_cnt - - -for i in range(n): - row_ans += find_row(arr2[i]) -col_ans = find_col(arr2) - -print(row_ans, col_ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1654.py b/Python_BOJ_2021/1654.py deleted file mode 100644 index 7073fcf..0000000 --- a/Python_BOJ_2021/1654.py +++ /dev/null @@ -1,24 +0,0 @@ -# 랜선 자르기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -k, n = map(int, input().split()) -arr = [int(input()) for _ in range(k)] - -start = 1 -end = max(arr) - -while start <= end: - cnt = 0 - mid = (start + end) // 2 - for x in arr: - cnt += x // mid - - if cnt>= n: - start = mid + 1 - ans = mid - else: - end = mid -1 - - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1655.py b/Python_BOJ_2021/1655.py deleted file mode 100644 index f9e8efd..0000000 --- a/Python_BOJ_2021/1655.py +++ /dev/null @@ -1,37 +0,0 @@ -# 가운데를 말해요 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -min, max = [], [] -for _ in range(int(input())): - a = int(input()) - if len(max) == len(min): - heapq.heappush(max, (-a, a)) - else: - heapq.heappush(min, (a, a)) - - if len(max)>= 1 and len(min)>= 1 and max[0][1]> min[0][1]: - max_val, min_val = heapq.heappop(max)[1], heapq.heappop(min)[1] - heapq.heappush(max, (-max_val, max_val)) - heapq.heappush(min, (min_val, min_val)) - print(max[0][1]) - -# arr, tmp = [], [] -# for _ in range(int(input())): -# a = int(input()) -# heapq.heappush(arr, a) # 힙으로 저장 -# -# if len(arr) == 1: # 1개면 중간값은 자기 자신 -# print(arr[0]) -# else: -# while len(arr): -# tmp.append(heapq.heappop(arr)) -# -# for i in tmp: -# arr.append(i) -# tmp = [] -# -# if len(arr) % 2 != 0: -# print(arr[len(arr) // 2]) -# else: -# print(arr[(len(arr) // 2) - 1]) diff --git a/Python_BOJ_2021/1662.py b/Python_BOJ_2021/1662.py deleted file mode 100644 index 0fb85bf..0000000 --- a/Python_BOJ_2021/1662.py +++ /dev/null @@ -1,23 +0,0 @@ -# 압축 -import sys -input = lambda :sys.stdin.readline().rstrip() - -s = input() -stack = [] - -for i in range(len(s)): - if i < len(s) - 1 and s[i + 1] == '(': - stack.append(s[i]) - elif s[i] == '(': - stack.append('(') - elif s[i] == ')': - cnt = 0 - while True: - tmp = stack.pop() - if tmp == '(': break - cnt += tmp - stack.append(int(stack.pop()) * cnt) - else: - stack.append(1) - -print(sum(stack)) \ No newline at end of file diff --git a/Python_BOJ_2021/16637.py b/Python_BOJ_2021/16637.py deleted file mode 100644 index c134f6a..0000000 --- a/Python_BOJ_2021/16637.py +++ /dev/null @@ -1,29 +0,0 @@ -# 괄호 추가하기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -num, op = list(), list() -ans = -123456789 - - -def dfs(idx, sub_tot): - global ans - if idx == len(op): - ans = max(ans, int(sub_tot)) - return - - first = str(eval(sub_tot + op[idx] + num[idx+ 1])) # (3+8)*7-9*2 - dfs(idx + 1, first) - - if idx + 1 < len(op): - second = str(eval(num[idx + 1] + op[idx + 1] + num[idx + 2])) # 3+(8*7)-9*2 - second = str(eval(sub_tot + op[idx] + second)) - dfs(idx + 2, second) - - -for e in input(): - num.append(e) if e.isdigit() else op.append(e) - -dfs(0, num[0]) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/16918.py b/Python_BOJ_2021/16918.py deleted file mode 100644 index 1065929..0000000 --- a/Python_BOJ_2021/16918.py +++ /dev/null @@ -1,51 +0,0 @@ -# 봄버맨 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def findBomb(): - for i in range(r): - for j in range(c): - if graph[i][j] == 'O': # 폭탄의 위치를 확인 - bombList.append((i, j)) - - -# 3단계 : 모든 칸에 폭탄을 설치한다. -def allBombSet(): - for i in range(r): - for j in range(c): - if graph[i][j] != 'O': - graph[i][j] = 'O' - - -# 4단계 : 폭탄이 터진다. -def bomb(): - while bombList: - x, y = bombList.popleft() - graph[x][y] = '.' - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < r and 0 <= ny < c: - if graph[nx][ny] == 'O': - graph[nx][ny] = '.' - - -r, c, n = map(int, input().split()) -graph = [list(input()) for _ in range(r)] # 1단계 : 폭탄을 설치 -n -= 1 # 2단계 : 아무것도 하지않고 시간만 감 -while n: - bombList = deque() - findBomb() - allBombSet() - n -= 1 - if n == 0: - break - bomb() - n -= 1 - -for i in range(r): - for j in range(c): - print(graph[i][j], end='') - print() \ No newline at end of file diff --git a/Python_BOJ_2021/16953.py b/Python_BOJ_2021/16953.py deleted file mode 100644 index f04a977..0000000 --- a/Python_BOJ_2021/16953.py +++ /dev/null @@ -1,21 +0,0 @@ -a, b = map(int, input().split()) -ans = 0 -while True: - if a == b: - ans += 1 - break - - if b < a: - ans = -1 - break - - if b % 10 == 1: - b = b // 10 - elif b % 2 == 0: - b = b // 2 - else: - ans = -1 - break - - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/16956.py b/Python_BOJ_2021/16956.py deleted file mode 100644 index c55f9c3..0000000 --- a/Python_BOJ_2021/16956.py +++ /dev/null @@ -1,30 +0,0 @@ -# 늑대와 양 -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -r, c = map(int, input().split()) -graph = [list(map(str, input())) for _ in range(r)] -flag = True - - -def make_fense(): - global flag - for i in range(r): - for j in range(c): - if graph[i][j] == 'W': - for dir in range(4): - nx, ny = i + dx[dir], j + dy[dir] - if 0 <= nx < r and 0 <= ny < c: - if graph[nx][ny] == '.': - graph[nx][ny] = 'D' - elif graph[nx][ny] == 'S': - flag = False - - -make_fense() -if not flag: - print(0) -else: - print(1) - for i in range(r): - for j in range(c): - print(graph[i][j], end='') - print() \ No newline at end of file diff --git a/Python_BOJ_2021/16964.py b/Python_BOJ_2021/16964.py deleted file mode 100644 index e10e5c9..0000000 --- a/Python_BOJ_2021/16964.py +++ /dev/null @@ -1,43 +0,0 @@ -# DFS 스페셜 저지 -import sys -input = lambda :sys.stdin.readline().rstrip() -sys.setrecursionlimit(1000001) - -n = int(input()) -graph = [[] for _ in range(n + 1)] -visited = [False] * (n + 1) - -for _ in range(n - 1): - s, e = map(int, input().split()) - graph[s].append(e) - graph[e].append(s) -ans = list(map(int, input().split())) -level = [False] * (n + 1) -tsize = [0] * (n + 1) - - -def dfs(n, lv): - if visited[n]: return 0 - visited[n] = True - size = 1 - level[n] = lv - for i in range(len(graph[n])): - next = graph[n][i] - size += dfs(next, lv + 1) - tsize[n] = size - return size - -if ans[0] != 1: - print("0") - sys.exit(0) -else: - dfs(1, 0) - for i in range(1, n): - x = ans[i] - if tsize[x] == 1 or i + tsize[x]>= n: - continue - next = ans[i + tsize[x]] - if level[next]> level[x]: - print(0) - sys.exit(0) - print(1) diff --git a/Python_BOJ_2021/1697.py b/Python_BOJ_2021/1697.py deleted file mode 100644 index 329b165..0000000 --- a/Python_BOJ_2021/1697.py +++ /dev/null @@ -1,27 +0,0 @@ -# 숨바꼭질 -from collections import deque -import sys - -n , k = map(int, sys.stdin.readline().rstrip().split()) -visited = [0] * 100001 - - -def bfs(n, k, visited): - queue = deque() - queue.append(n) - - while queue: - nowPosition = queue.popleft() - if nowPosition == k: - print(visited[nowPosition]) - break - - arr = [nowPosition - 1, nowPosition + 1, nowPosition * 2] - - for newPosition in arr: - if 0 <= newPosition <= 100000 and visited[newPosition] == 0: - visited[newPosition] = visited[nowPosition] + 1 - queue.append(newPosition) - - -bfs(n, k, visited) \ No newline at end of file diff --git a/Python_BOJ_2021/1700.py b/Python_BOJ_2021/1700.py deleted file mode 100644 index 5c8bb3a..0000000 --- a/Python_BOJ_2021/1700.py +++ /dev/null @@ -1,38 +0,0 @@ -# 멀티탭 스케줄링 -import sys -input = lambda : sys.stdin.readline().rstrip() - -N, K = map(int, input().split()) -cmd = list(map(int, input().split())) -queue = [[] for _ in range(101)] - -for idx, val in enumerate(cmd): - queue[val].append(idx) - -plug = {} -ans = 0 - -for idx, val in enumerate(cmd): - if len(plug) < N: - plug[val] = 1 - elif val in plug: - pass - else: - del_idx = idx - del_val = 101 - - for check in plug: - for check_idx in queue[check]: - if check_idx> idx: - if del_idx < check_idx: - del_idx, del_val = check_idx, check - break - else: - del_val = check - break - - del plug[del_val] - plug[val] = 1 - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1707.py b/Python_BOJ_2021/1707.py deleted file mode 100644 index a266452..0000000 --- a/Python_BOJ_2021/1707.py +++ /dev/null @@ -1,44 +0,0 @@ -# 이분 그래프 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - - -def bfs(v, visited, color): - queue = deque([v]) - visited[v] = True - color[v] = 1 - - while queue: - now = queue.popleft() - - for nxt in graph[now]: - if not visited[nxt]: - queue.append(nxt) - color[nxt] = 3 - color[now] - visited[nxt] = True - else: - if color[now] == color[nxt]: - return False - return True - - -for _ in range(int(input())): - v, e = map(int, input().split()) - graph = [[] for _ in range(v + 1)] - visited = [False for _ in range(v + 1)] - color = [0 for _ in range(v + 1)] - flag = True - for i in range(e): - x, y = map(int, input().split()) - graph[x].append(y) - graph[y].append(x) - - for node in range(1, v + 1): - if not visited[node]: - if not bfs(node, visited, color): - flag = False - break - - if not flag: print("NO") - else: print("YES") \ No newline at end of file diff --git a/Python_BOJ_2021/17070.py b/Python_BOJ_2021/17070.py deleted file mode 100644 index f89c0ff..0000000 --- a/Python_BOJ_2021/17070.py +++ /dev/null @@ -1,37 +0,0 @@ -# 파이프 옮기기 1 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def dfs(pos): - global cnt - x, y, z = pos # x, y좌표 , 방향 - - # 0 : ᅳ - # 1 : ᅵ - # 2 : \ - - if x == n - 1 and y == n - 1: # 기저 조건 - cnt += 1 - return - - if x + 1 < n and y + 1 < n: - if graph[x + 1][y + 1] == 0 and graph[x][y + 1] == 0 and graph[x + 1][y] == 0: # 이동할 수 있으면 - dfs((x + 1, y + 1, 2)) - - if z == 0 or z == 2: - if y + 1 < n: - if graph[x][y + 1] == 0: - dfs((x, y + 1, 0)) - - if z == 1 or z == 2: - if x + 1 < n: - if graph[x + 1][y] == 0: - dfs((x + 1, y, 1)) - - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -cnt = 0 -dfs((0, 1, 0)) # 방향은 ᅳ 로 시작 -print(cnt) diff --git a/Python_BOJ_2021/17086.py b/Python_BOJ_2021/17086.py deleted file mode 100644 index 57c1ef3..0000000 --- a/Python_BOJ_2021/17086.py +++ /dev/null @@ -1,35 +0,0 @@ -# 아기 상어2 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0, 1, 1, -1, -1], [0, 0, -1, 1, -1, 1, -1, 1] - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -shark = deque() - - -def bfs(): - while shark: - x, y = shark.popleft() - for i in range(8): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 0: - shark.append((nx, ny)) - graph[nx][ny] = graph[x][y] + 1 - - -for i in range(n): - for j in range(m): - if graph[i][j] == 1: - shark.append((i, j)) - -bfs() -max_length = -123456789 -for i in range(n): - for j in range(m): - max_length = max(max_length, graph[i][j]) - -print(max_length - 1) \ No newline at end of file diff --git a/Python_BOJ_2021/1712.py b/Python_BOJ_2021/1712.py deleted file mode 100644 index d1bd4ee..0000000 --- a/Python_BOJ_2021/1712.py +++ /dev/null @@ -1,7 +0,0 @@ -# 손익분기점 -a, b, c = map(int,input().split()) - -if b == c or b> c: - print(-1) -else: - print(int(a/(c-b)+1)) \ No newline at end of file diff --git a/Python_BOJ_2021/17140.py b/Python_BOJ_2021/17140.py deleted file mode 100644 index b06a0eb..0000000 --- a/Python_BOJ_2021/17140.py +++ /dev/null @@ -1,43 +0,0 @@ -# 이차원 배열과 연산 나중에 다시 풀어본다.. -from collections import Counter -r, c, k = map(int, input().split()) -arr = [list(map(int, input().split())) for _ in range(3)] - -r -= 1 -c -= 1 -time = 0 - -while time <= 100: - if r < len(arr) and c < len(arr[0]) and arr[r][c] == k: - print(time) - break - - flag = False - if len(arr) < len(arr[0]): - flag = True - arr = list(zip(*arr)) - - max_rowlen = 0 - tmp_arr = list() - - for now_row in arr: - cnt = Counter(now_row) - if cnt.get(0): - del cnt[0] - num_cnt = list(map(list, cnt.items())) - num_cnt.sort(key = lambda x:(x[1], x[0])) - tmp_arr.append(list(sum(num_cnt, []))[:100]) - max_rowlen = max(max_rowlen, len(tmp_arr[-1])) - - for i in range(len(tmp_arr)): - if (len(tmp_arr)) < max_rowlen: - tmp_arr[i] += [0] * (max_rowlen - len(tmp_arr[i])) - - arr = tmp_arr - - if flag: - arr = list(zip(*arr)) - time += 1 - -if time> 100: - print(-1) \ No newline at end of file diff --git a/Python_BOJ_2021/17142.py b/Python_BOJ_2021/17142.py deleted file mode 100644 index b1aeaee..0000000 --- a/Python_BOJ_2021/17142.py +++ /dev/null @@ -1,65 +0,0 @@ -# 연구소3 -from collections import deque -from itertools import combinations -import sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) -dx, dy = [-1, 1, 0, 0], [0 , 0, -1, 1] - -time = INF - - -def bfs(virus, min_time, leftArea): - global time - queue = deque(virus) - time_val = 0 - visited = [[False] * n for _ in range(n)] - for x, y in virus: - visited[x][y] = True - - while queue: - if not leftArea: - break - time_val += 1 - if time_val>= min_time: - return INF - - for _ in range(len(queue)): - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if graph[nx][ny] != 1 and not visited[nx][ny]: - visited[nx][ny] = True - queue.append((nx, ny)) - if graph[nx][ny] == 0: leftArea -= 1 - - if not leftArea: - return time_val - else: - return INF - - - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -virusList = list() - -left = 0 -# 바이러스가 있으면 위치 저장 및 빈 공간 체크 -for i in range(n): - for j in range(n): - if graph[i][j] == 2: - virusList.append([i, j]) - if graph[i][j] == 0: - left += 1 - -# 바이러스 N개 중 m개를 선택 NCm -for virusPosition in combinations(virusList, m): - time = min(time, bfs(virusPosition, time, left)) - -# 이동 못 할 경우 -1 출력, 만약 도착 했으면 값을 출력 -if time == INF: - print(-1) -else: - print(time) diff --git a/Python_BOJ_2021/17143.py b/Python_BOJ_2021/17143.py deleted file mode 100644 index afd2816..0000000 --- a/Python_BOJ_2021/17143.py +++ /dev/null @@ -1,53 +0,0 @@ -# 낚시왕 -import sys -input = lambda :sys.stdin.readline().rstrip() -dx, dy = [-1, 1, 0, 0], [0, 0, 1, -1] # 상,하,우,좌 - - -def sharkMove(): - tmp = [[0] * C for _ in range(R)] # tmp에 새로 저장을 해줘서 return 해줄것이다. - - for i in range(R): - for j in range(C): - if graph[i][j] != 0: # 상어가 있으면 - x, y, s, d, z = i, j, graph[i][j][0], graph[i][j][1], graph[i][j][2] - - while s> 0: # 속도만큼 이동해야 하므로 while 을 써서 한칸씩 dx, dy 이동 - x += dx[d] - y += dy[d] - if 0 <= x < R and 0 <= y < C: - s -= 1 # 기저 조건 만들어 주려고 s -= 1해줌 - else: # 지도 밖으로 나가면 방향 전환을 해줘야 됨 - x -= dx[d] # 빠꾸 - y -= dy[d] - - if d == 0: d = 1 # 방향도 뒤집어 줘야됨 상> 하 - elif d == 1: d = 0 # 하> 상 - elif d == 2: d = 3 # 우> 좌 - elif d == 3: d = 2 # 좌> 우 - - if tmp[x][y] == 0: # 새로 이동한 맵에다 - tmp[x][y] = [graph[i][j][0], d, z] # 상어 정보 정리 - else: # 상어가 있으면 - if tmp[x][y][2] < z: # 사이즈 비교후 큰것을 - tmp[x][y] = [graph[i][j][0], d, z] # 위치 시킴 - return tmp # 이렇게 새로 짠 그래프를 보냄 - - -R, C, m = map(int, input().split()) # 격자판 크기, 상어의 수 -graph = [[0] * C for _ in range(R)] - -for _ in range(m): - r, c, s, d, z = map(int, input().split()) - graph[r - 1][c - 1] = [s, d - 1, z] #속력, 방향, 크기 저장 - -ans = 0 -for i in range(C): - for j in range(R): - if graph[j][i] != 0: # 가장 가까이에 있는 상어를 일단 잡음 - ans += graph[j][i][2] - graph[j][i] = 0 # 잡고 지도에서 지워주기 - break - graph = sharkMove() - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/17144.py b/Python_BOJ_2021/17144.py deleted file mode 100644 index 19af524..0000000 --- a/Python_BOJ_2021/17144.py +++ /dev/null @@ -1,77 +0,0 @@ -# 미세먼지 안녕! -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -r, c, t = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(r)] -purifier = -1 - -for i in range(r): - for j in range(c): - if purifier == -1 and graph[i][j] == -1: - purifier = i -queue = deque() - - -def findDust(): - for i in range(r): - for j in range(c): - if graph[i][j] == -1 or graph[i][j] == 0: continue - queue.append([i, j, graph[i][j]]) - - -def spreadDust(): - while queue: - x, y, dustSum = queue.popleft() - if dustSum < 5: continue - amountOfDust = dustSum // 5 - howManySpreadCnt = 0 - - for d in range(4): - nx, ny = x + dx[d], y + dy[d] - - if 0 <= nx < r and 0 <= ny < c: - if graph[nx][ny] == -1: continue - graph[nx][ny] += amountOfDust - howManySpreadCnt += 1 - graph[x][y] -= amountOfDust * howManySpreadCnt - - -def runningPurifier(): - top, bottom = purifier, purifier + 1 - - for i in range(top - 1, 0, -1): - graph[i][0] = graph[i - 1][0] - for i in range(c - 1): - graph[0][i] = graph[0][i + 1] - for i in range(top): - graph[i][c - 1] = graph[i + 1][c - 1] - for i in range(c - 1, 1, -1): - graph[top][i] = graph[top][i - 1] - graph[top][1] = 0 - - for i in range(bottom + 1, r - 1): - graph[i][0] = graph[i + 1][0] - for i in range(c - 1): - graph[r - 1][i] = graph[r - 1][i + 1] - for i in range(r - 1, bottom, -1): - graph[i][c - 1] = graph[i - 1][c - 1] - for i in range(c - 1, 1, -1): - graph[bottom][i] = graph[bottom][i - 1] - graph[bottom][1] = 0 - - -for tc in range(t): - findDust() - spreadDust() - runningPurifier() - -answer = 0 -for i in range(r): - for j in range(c): - if graph[i][j] != -1: - answer += graph[i][j] - -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/1715.py b/Python_BOJ_2021/1715.py deleted file mode 100644 index 34c0836..0000000 --- a/Python_BOJ_2021/1715.py +++ /dev/null @@ -1,20 +0,0 @@ -# 카드 정렬하기 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -cards = [] - -n = int(input()) -for _ in range(n): - heapq.heappush(cards, int(input())) - -if n == 1: - print(0) -else: - sum = 0 - while len(cards)> 1: - tmp = heapq.heappop(cards) + heapq.heappop(cards) - heapq.heappush(cards, tmp) - sum += tmp - - print(sum) diff --git a/Python_BOJ_2021/1717.py b/Python_BOJ_2021/1717.py deleted file mode 100644 index 303faa9..0000000 --- a/Python_BOJ_2021/1717.py +++ /dev/null @@ -1,36 +0,0 @@ -import sys -sys.setrecursionlimit(1000000) -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -parent = list() - -for i in range(n + 1): - parent.append(i) - - -def getParent(x): - if x == parent[x]: - return x - else : - parent[x] = getParent(parent[x]) - return parent[x] - - -def Union(a, b): - a = getParent(a) - b = getParent(b) - if a == b: return - if a < b: parent[b] = a - else: parent[a] = b - - -for i in range(m): - a, b, c = map(int, input().split()) - if a == 0: - Union(b, c) - else: - if getParent(b) == getParent(c): - print("YES") - else: - print("NO") \ No newline at end of file diff --git a/Python_BOJ_2021/1717_2.py b/Python_BOJ_2021/1717_2.py deleted file mode 100644 index d8d9489..0000000 --- a/Python_BOJ_2021/1717_2.py +++ /dev/null @@ -1,38 +0,0 @@ -# 집합의 표현 -import sys -sys.setrecursionlimit(100001) -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -parent = [i for i in range(n + 1)] - - -def find(x): - if x == parent[x]: - return x - else: - parent[x] = find(parent[x]) - return parent[x] - - -def union(arr, a, b): - a = find(a) - b = find(b) - if a == b: return - if a < b: - arr[b] = a - else: - arr[a] = b - - -for _ in range(m): - a, b, c = map(int, input().split()) - if a == 0: - union(parent, b, c) - else: - if find(b) == find(c): - print("YES") - else: - print("NO") - diff --git a/Python_BOJ_2021/1718.py b/Python_BOJ_2021/1718.py deleted file mode 100644 index 0aef1ec..0000000 --- a/Python_BOJ_2021/1718.py +++ /dev/null @@ -1,20 +0,0 @@ -# 암호 -import sys -input = lambda : sys.stdin.readline().rstrip() - -s = list(map(str, input())) -key = list(map(str, input())) * 100000 -arr = list() - -for i in range(len(s)): - if s[i] == " ": arr.append(" ") - else: arr.append(ord(s[i]) - ord('a') + 1) - -for i in range(len(arr)): - if arr[i] == " ": continue - if int(arr[i]) - int(ord(key[i]) - ord('a') + 1) <= 0: - arr[i] = chr(arr[i] + (26 - (ord(key[i]) - ord('a') + 1)) + 96) - else: - arr[i] = chr(arr[i] - (ord(key[i]) - ord('a') + 1) + 96) - -print(''.join(arr)) diff --git a/Python_BOJ_2021/1719.py b/Python_BOJ_2021/1719.py deleted file mode 100644 index fb967c9..0000000 --- a/Python_BOJ_2021/1719.py +++ /dev/null @@ -1,36 +0,0 @@ -# 택배 -import sys -input = lambda :sys.stdin.readline().rstrip() - -INF = int(1e9) -n, m = map(int, input().split()) -graph = [[INF] * n for _ in range(n)] -stopover = [[0] * n for _ in range(n)] - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_ - 1][to_ - 1] = weight - graph[to_ - 1][from_ - 1] = weight - stopover[from_ - 1][to_ - 1] = to_ - stopover[to_ - 1][from_ - 1] = from_ - -for i in range(n): - for j in range(n): - if i == j: - graph[i][j] == 0 - stopover[i][j] = -1 - -for k in range(n): - for i in range(n): - for j in range(n): - if graph[i][j]> graph[i][k] + graph[k][j]: - graph[i][j] = graph[i][k] + graph[k][j] - stopover[i][j] = stopover[i][k] - -for i in range(n): - for j in range(n): - if i == j: - print("-", end = ' ') - else: - print(stopover[i][j], end=' ') - print() \ No newline at end of file diff --git a/Python_BOJ_2021/17201.py b/Python_BOJ_2021/17201.py deleted file mode 100644 index 028c1d1..0000000 --- a/Python_BOJ_2021/17201.py +++ /dev/null @@ -1,14 +0,0 @@ -# 자석 체인 - -n = int(input()) -arr = input() - -cnt = 0 -for i in range(len(arr) - 1): - if arr[i] == arr[i + 1]: - cnt = 1 - print("No") - exit() - -if cnt == 0: - print("Yes") \ No newline at end of file diff --git a/Python_BOJ_2021/17219.py b/Python_BOJ_2021/17219.py deleted file mode 100644 index 47db12d..0000000 --- a/Python_BOJ_2021/17219.py +++ /dev/null @@ -1,10 +0,0 @@ -# 비밀번호 찾기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -arr = dict(input().split() for _ in range(n)) - -for _ in range(m): - site = input() - print(arr.get(site)) \ No newline at end of file diff --git a/Python_BOJ_2021/17249.py b/Python_BOJ_2021/17249.py deleted file mode 100644 index b57e22f..0000000 --- a/Python_BOJ_2021/17249.py +++ /dev/null @@ -1,17 +0,0 @@ -# 태보태보 총난타 -import sys -n = sys.stdin.readline().rstrip() -l_cnt, r_cnt, start = 0, 0, 0 - -for i in range(start, len(n)): - if n[i] == '@': - l_cnt += 1 - elif n[i] == '0': - start = i - break - -for j in range(start, len(n)): - if n[j] == '@': - r_cnt += 1 - -print(f'{l_cnt} {r_cnt}') \ No newline at end of file diff --git a/Python_BOJ_2021/17392.py b/Python_BOJ_2021/17392.py deleted file mode 100644 index 536108f..0000000 --- a/Python_BOJ_2021/17392.py +++ /dev/null @@ -1,22 +0,0 @@ -# 우울한 방학 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) - - -def cal_sad(n): - sad = 1 - result = 0 - while sad <= n: - result += sad * sad - sad += 1 - return result - - -sad_sum = m - n - sum(arr) -sum = sad_sum // (n + 1) -rest = sad_sum % (n + 1) - -print(cal_sad(sum) * (n + 1 - rest) + cal_sad(sum + 1) * rest) \ No newline at end of file diff --git a/Python_BOJ_2021/17396.py b/Python_BOJ_2021/17396.py deleted file mode 100644 index 4262d79..0000000 --- a/Python_BOJ_2021/17396.py +++ /dev/null @@ -1,35 +0,0 @@ -# 백도어 -from heapq import * -import sys -input = lambda :sys.stdin.readline().rstrip() - - -def dijikstra(start): - queue = list() - heappush(queue, (0, start)) - distance[start] = 0 - while queue: - cost, current = heappop(queue) - if distance[current] < cost: continue - for i in graph[current]: - cost2 = cost + i[1] - if cost2 < distance[i[0]] and arr[i[0]] == 0: - distance[i[0]] = cost2 - heappush(queue, (cost2, i[0])) - - -INF = 1234567890 -n, m = map(int, input().split()) -graph = [[] * (n + 1) for _ in range(n + 1)] -distance = [INF] * (n + 1) -arr = list(map(int, input().split())) -arr[-1] = 0 - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append((to_, weight)) - graph[to_].append((from_, weight)) - -dijikstra(0) - -print(distance[n - 1] if distance[n - 1] != INF else -1) \ No newline at end of file diff --git a/Python_BOJ_2021/17413.py b/Python_BOJ_2021/17413.py deleted file mode 100644 index e603c16..0000000 --- a/Python_BOJ_2021/17413.py +++ /dev/null @@ -1,29 +0,0 @@ -# 단어 뒤집기2 -import sys -input = lambda : sys.stdin.readline().rstrip() - -ans = '' -flag = 0 -word = '' -for c in input(): - if c == '<': - flag ^= 1 - ans += word - word = '<' - elif c == '>': - flag ^= 1 - ans += (word + '>') - word = '' - elif c == ' ': - ans += (word + ' ') - word = '' - else: - if flag: - word += c - else: - word = c + word - -if word: - ans += word - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1743.py b/Python_BOJ_2021/1743.py deleted file mode 100644 index 95de342..0000000 --- a/Python_BOJ_2021/1743.py +++ /dev/null @@ -1,40 +0,0 @@ -# 음식물 피하기 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, m, k = map(int, input().split()) -graph = [['.' for _ in range(m)] for _ in range(n)] -visited = [[False for _ in range(m)] for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -ans = 0 - -for _ in range(k): - r, c = map(int, input().split()) - graph[r - 1][c - 1] = '#' - - -def bfs(a, b): - queue = deque() - queue.append((a, b)) - visited[a][b] = True - cnt = 1 - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < m and not visited[nx][ny]: - if graph[nx][ny] == '#': - queue.append((nx, ny)) - visited[nx][ny] = True - cnt += 1 - return cnt - - -for x in range(n): - for y in range(m): - if not visited[x][y] and graph[x][y] == '#': - ans = max(ans, bfs(x, y)) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1744.py b/Python_BOJ_2021/1744.py deleted file mode 100644 index 556709b..0000000 --- a/Python_BOJ_2021/1744.py +++ /dev/null @@ -1,36 +0,0 @@ -# 수 묶기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [int(input()) for _ in range(n)] - -positive = [] -negative = [] -ans = 0 - -for i in arr: - if i <= 0: - negative.append(i) - elif i == 1: - ans += 1 - elif i> 1: - positive.append(i) - -negative.sort() -positive.sort(reverse=True) - - -for i in range(0, len(positive), 2): - if i + 1 < len(positive): - ans += positive[i] * positive[i+1] - else: - ans += positive[i] - -for i in range(0, len(negative), 2): - if i + 1 < len(negative): - ans += negative[i] * negative[i+1] - else: - ans += negative[i] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/17472.py b/Python_BOJ_2021/17472.py deleted file mode 100644 index e6441c7..0000000 --- a/Python_BOJ_2021/17472.py +++ /dev/null @@ -1,90 +0,0 @@ -# 다리 만들기 2 -import sys, math -from collections import deque, defaultdict -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] - - -def bfs(start, graph, continent_num): # 대륙별로 라벨링하기 - queue = deque() - queue.append(start) - - while queue: - x, y = queue.popleft() - graph[x][y] = continent_num - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1: - graph[nx][ny] = continent_num - queue.append([nx, ny]) - - -def get_distance(graph): # 각 섬별로 최소거리를 구해보자 - table = defaultdict(lambda : math.inf) # 최소 거리 저장을 위해 딕셔너리 생성, 기본값은 무한대 - iters = [graph, list(map(list, zip(*graph)))] - - for each_maps in iters: - for x in range(len(each_maps)): - continent = None - checked = set() - - for y in range(1, len(each_maps[0])): - if each_maps[x][y] == 0 and each_maps[x][y - 1] != 0: # 섬> 바다로 바뀌는 순간 섬의 마지막 좌표 기억 - continent = y - 1 - - if each_maps[x][y] != 0 and continent is not None: # 바다> 섬으로 바뀌면서 이전에 통과한 섬이 있다면 - distance = y - continent - 1 # 이전 섬과 현재 섬 거리 계산 - - if distance>= 2 and each_maps[x][y] not in checked: # 거리가 2이상, 현재 섬이 아직 거리 계산을 안했다면 - - small = min(each_maps[x][continent], each_maps[x][y]) - large = max(each_maps[x][continent], each_maps[x][y]) - table[(small, large)] = min(table[(small, large)], distance) # 섬과 섬의 거리를 최솟값으로 업데이트 한다. - - checked.add(each_maps[x][y]) # 현재 섬의 라벨 저장 - return table - - -def find(x, parent): # 유니온 파인드 - if x == parent[x]: - return x - p = find(parent[x], parent) - parent[x] = p - return p - - -def union(x, y, parent): - x = find(x, parent) - y = find(y, parent) - parent[y] = x - - -def get_min_distance(table, continent): - table = sorted(list(table.items()), key = lambda x: x[1]) # 거리 짧은 순서대로 정렬 - ans = 0 - - parent = {i : i for i in range(2, max(continent) + 1)} - - for (x, y), val in table: - if find(x, parent) != find(y, parent): - union(x, y, parent) - ans += val - if len(set([find(i, parent) for i in parent])) == 1: # 모든섬이 연결되어 있다면 부모는 1개니까 길이가 1인경우는 모두 연결 되었다는 소리다 - return ans - return -1 - - -continent_num = 2 # 대륙 라벨링 섬은 1이므로 2부터 라벨링 시작 -for i in range(n): - for j in range(m): - if graph[i][j] == 1: - bfs((i, j), graph, continent_num) - continent_num += 1 - -print(get_min_distance(get_distance(graph), set(range(2, continent_num)))) \ No newline at end of file diff --git a/Python_BOJ_2021/17521.py b/Python_BOJ_2021/17521.py deleted file mode 100644 index d297385..0000000 --- a/Python_BOJ_2021/17521.py +++ /dev/null @@ -1,20 +0,0 @@ -# Byte Coin -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, W = map(int, input().split()) -coin_prices = [0] * 20 - -for i in range(0, n): - coin_prices[i] = int(input()) - -for i in range(n-1): - if coin_prices[i] < coin_prices[i+1]: - x = W // coin_prices[i] # 바꾼 동전 갯수 - W = W % coin_prices[i] # 동전을 바꾼 후 남은 잔돈 - x = coin_prices[i+1] * x # 코인 가격 상승으로 생긴 이득 - W += x # 현재 잔고 - - else: - continue -print(W) \ No newline at end of file diff --git a/Python_BOJ_2021/1753.py b/Python_BOJ_2021/1753.py deleted file mode 100644 index f0a1461..0000000 --- a/Python_BOJ_2021/1753.py +++ /dev/null @@ -1,33 +0,0 @@ -from heapq import heappush, heappop - -def dijkstra(s): - pq = [] - d = [123456789] * (v + 1) - d[s] = 0 - heappush(pq, (d[s], s)) - while pq: - cur_d, cur_node = heappop(pq) - if d[cur_node] < cur_d: - continue - for dis, next_node in graph[cur_node]: - if cur_d + dis < d[next_node]: - d[next_node] = cur_d + dis - heappush(pq, (d[next_node], next_node)) - return d - -v, e = map(int, input().split()) -k = int(input()) - -graph = [[] for _ in range(v + 1)] -visited = [False] * (v + 1) - - -for _ in range(e): - from_, to_, weight_ = map(int, input().split()) - graph[from_].append((to_, weight_)) - -for i in dijkstra(k)[1:]: - if i == 123456789: - print("INF") - else: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/1753_2.py b/Python_BOJ_2021/1753_2.py deleted file mode 100644 index 75dc19c..0000000 --- a/Python_BOJ_2021/1753_2.py +++ /dev/null @@ -1,34 +0,0 @@ -# 최단 경로 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -v, e = map(int, input().split()) -k = int(input()) -d = [int(1e9) for _ in range(v + 1)] - - -def dijikstra(start): - pq = [] - d[start] = 0 - heapq.heappush(pq, (d[start], start)) - while pq: - current_distance, current_node = heapq.heappop(pq) - if d[current_node] < current_distance: continue - for next_node, distance in graph[current_node]: - if current_distance + distance < d[next_node]: - d[next_node] = current_distance + distance - heapq.heappush(pq, (d[next_node], next_node)) - - -graph = [[] for _ in range(v + 1)] -for _ in range(e): - from_, to_, weight = map(int, input().split()) - graph[from_].append((to_, weight)) - -dijikstra(k) - -for i in d[1:]: - if i == int(1e9): - print('INF') - else: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/1753_3.py b/Python_BOJ_2021/1753_3.py deleted file mode 100644 index 2493cd0..0000000 --- a/Python_BOJ_2021/1753_3.py +++ /dev/null @@ -1,33 +0,0 @@ -# 특정한 최단 경로 -import sys, heapq - -v, e = map(int, input().split()) -k = int(input()) - -graph = [[] for _ in range(v + 1)] -distance = [int(1e9) for _ in range(v + 1)] - -for _ in range(e): - from_, to_, weight = map(int, input().split()) - graph[from_].append((to_, weight)) - - -def dijikstra(node): - distance[node] = 0 - heap = [] - heapq.heappush(heap, (distance[node], node)) - while heap: - c_dist, c_node = heapq.heappop(heap) - if distance[c_node] < c_dist: continue - for n_node, n_weight in graph[c_node]: - if c_dist + n_weight < distance[n_node]: - distance[n_node] = c_dist + n_weight - heapq.heappush(heap, (distance[n_node], n_node)) - - -dijikstra(k) -for i in distance[1:]: - if i == int(1e9): - print("INF") - else: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/1758.py b/Python_BOJ_2021/1758.py deleted file mode 100644 index 416182a..0000000 --- a/Python_BOJ_2021/1758.py +++ /dev/null @@ -1,18 +0,0 @@ -# 알바생 강호 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = sorted([int(input()) for _ in range(n)], reverse=True) - -tip = 0 -ans = [] - -for i in range(n): - tip = arr[i] - i - - if tip < 0: - tip = 0 - ans.append(tip) - -print(sum(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/1759.py b/Python_BOJ_2021/1759.py deleted file mode 100644 index c7b3f52..0000000 --- a/Python_BOJ_2021/1759.py +++ /dev/null @@ -1,40 +0,0 @@ -import sys -from itertools import combinations -input = lambda : sys.stdin.readline().rstrip() - -mo = ['a','e', 'i', 'o', 'u'] -za = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u' ,'v', 'w', 'x', 'y', 'z'] - -l, c = map(int, input().split()) -arr = list(input().split()) -arr = sorted(arr) -tmp = list() - -for i in combinations(arr, l): - tmp.append(i) - -ans = list() -for i in range(len(tmp)): - ans.append(''.join(tmp[i])) - -for i in range(len(ans)): - cnt = 0 - for j in range(l): - if ans[i][j] in za: - cnt += 1 - if cnt < 2: - ans[i] = ' ' - -for i in range(len(ans)): - cnt = 0 - if ans[i] == ' ': continue - for j in range(l): - if ans[i][j] in mo: - cnt += 1 - if cnt < 1: - ans[i] = ' ' - - -for i in range(len(ans)): - if ans[i] == ' ': continue - print(ans[i]) diff --git a/Python_BOJ_2021/17608.py b/Python_BOJ_2021/17608.py deleted file mode 100644 index 3d82ed7..0000000 --- a/Python_BOJ_2021/17608.py +++ /dev/null @@ -1,21 +0,0 @@ -# 막대기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -stack = [] -for _ in range(n): - stack.append(int(input())) - -kijoon = stack.pop() -max_height = kijoon # 기둥보다 큰 기둥이 나타날 때 카운트 하기위한 기준 -ans = 1 - -while stack: - if kijoon < stack[-1] and max_height < stack[-1]: - max_height = stack[-1] - ans += 1 - stack.pop() - else: - stack.pop() -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/17619.py b/Python_BOJ_2021/17619.py deleted file mode 100644 index f86d4ab..0000000 --- a/Python_BOJ_2021/17619.py +++ /dev/null @@ -1,50 +0,0 @@ -# 개구리 점프 -import sys -input = lambda :sys.stdin.readline().rstrip() - -parent = [i for i in range(100001)] -n, q = map(int, input().split()) - -arr = [(-1, -1)] -for i in range(n): - s, e, _ = map(int, input().split()) - arr.append((s, e, i + 1)) - -arr.sort() -cmd = [tuple(map(int, input().split())) for _ in range(q)] - - -def find(parent, x): - if x == parent[x]: - return x - else: - parent[x] = find(parent, parent[x]) - return parent[x] - - -def union(parent,x, y): - x = find(parent, x) - y = find(parent, y) - if x < y: - parent[y] = x - else: - parent[x] = y - - -def Solution(): - cs, ce, _ = arr[1] - for i in range(2, len(arr)): - ss, ee, _ = arr[i] - if ce>= ss: - ce = max(ce, ee) - union(parent, arr[i - 1][2], arr[i][2]) - else: - cs = ss - ce = ee - - -Solution() -for i, j in cmd: - arr[i] = find(parent, i) - arr[j] = find(parent, j) - print(1) if parent[i] == parent[j] else print(0) \ No newline at end of file diff --git a/Python_BOJ_2021/1764.py b/Python_BOJ_2021/1764.py deleted file mode 100644 index 7235d3a..0000000 --- a/Python_BOJ_2021/1764.py +++ /dev/null @@ -1,13 +0,0 @@ -# 듣보잡 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -dut = set([input() for _ in range(n)]) -bo = set([input() for _ in range(m)]) -tmp = dut & bo -ans = list(tmp) -ans.sort() - -print(len(ans)) -for i in ans: print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/1769.py b/Python_BOJ_2021/1769.py deleted file mode 100644 index 698dd9f..0000000 --- a/Python_BOJ_2021/1769.py +++ /dev/null @@ -1,15 +0,0 @@ -# 3의 배수 - -import sys - -x = sys.stdin.readline().rstrip() -cnt = 1 -y = str(sum(int(element) for element in x)) - -while 1: - if len(str(y)) == 1: break - cnt += 1 - y = str(sum(int(element) for element in y)) - -print(cnt if x != y else 0) -print("YES" if int(y) % 3 == 0 else "NO") \ No newline at end of file diff --git a/Python_BOJ_2021/1783.py b/Python_BOJ_2021/1783.py deleted file mode 100644 index d771785..0000000 --- a/Python_BOJ_2021/1783.py +++ /dev/null @@ -1,15 +0,0 @@ -# 병든 나이트 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = list(map(int, input().split())) - -if n == 1: - print(1) -elif n == 2: - print(min(4, (m+1)//2)) -elif n>= 3: - if m <= 6: - print(min(4, m)) - else: - print(m-2) diff --git a/Python_BOJ_2021/17836.py b/Python_BOJ_2021/17836.py deleted file mode 100644 index 48b1dc9..0000000 --- a/Python_BOJ_2021/17836.py +++ /dev/null @@ -1,39 +0,0 @@ -# 공주님을 구해라! -# 27717850 hoijae0194 17836 맞았습니다!! 32756 120 Python 3 / 수정 971 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n, m, t = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [[0] * m for _ in range(n)] -tmp = 123456789 - - -def bfs(): - global tmp - queue = deque() - queue.append((0, 0)) - visited[0][0] = 1 - - while queue: - x, y = queue.popleft() - if graph[x][y] == 2: - tmp = abs(n - 1 - x) + abs(m - 1 - y) + visited[x][y] - 1 - if x == n - 1 and y == m - 1: - return min(visited[x][y] - 1, tmp) - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny]: - if graph[nx][ny] != 1: - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - return tmp - - -res = bfs() -print("Fail" if(res> t) else res) \ No newline at end of file diff --git a/Python_BOJ_2021/1786.py b/Python_BOJ_2021/1786.py deleted file mode 100644 index 3cea7f7..0000000 --- a/Python_BOJ_2021/1786.py +++ /dev/null @@ -1,46 +0,0 @@ -def getpartialmatch(N): - m=len(N) - pi=[0 for i in range(m)] - begin=1 - matched=0 - while begin+matched 0 and P[i] != P[j]: - j = table[j - 1] - if P[i] == P[j]: - j += 1 - table[i] = j - -ans = list() - -j = 0 -for i in range(len(T)): - while j> 0 and T[i] != P[j]: - j = table[j - 1] - if T[i] == P[j]: - if j == len(P) - 1: - ans.append(str(i - len(P) + 1 + 1)) - j = table[j] - else: - j += 1 - -print(len(ans)) -print(' '.join(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/1800.py b/Python_BOJ_2021/1800.py deleted file mode 100644 index 263fc32..0000000 --- a/Python_BOJ_2021/1800.py +++ /dev/null @@ -1,71 +0,0 @@ -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - - -def dijkstra(s, limit): - queue = list() - distance = [INF] * (n + 1) - heapq.heappush(queue, (0, s)) - distance[s] = 0 - - while queue: - cost, curr = heapq.heappop(queue) - if distance[curr] < cost: continue - - for i in graph[curr]: - if i[0]> limit: - if cost + 1 < distance[i[1]]: - distance[i[1]] = cost + 1 - heapq.heappush(queue, (cost + 1, i[1])) - else: - if cost < distance[i[1]]: - distance[i[1]] = cost - heapq.heappush(queue, (cost, i[1])) - - if distance[n]> k: - return False - else: - return True - - -n, m, k = map(int, input().split()) -graph = [[] for _ in range(n + 1)] - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append((weight, to_)) - graph[to_].append((weight, from_)) - -left, right = 0, 1000001 -ans = INF - -while left <= right: - mid = (left + right) // 2 - flag = dijkstra(1, mid) - if flag: - right = mid - 1 - ans = mid - else: - left = mid + 1 - -if ans == INF: - print(-1) -else: - print(ans) - - -# [알고리즘] -# -# 알고리즘 전체 과정을 대략적으로 말씀드리면 이분 탐색을 통해 케이블 기준 가격을 정한 후 -# 다익스트라를 수행함으로써 1번과 N번 컴퓨터를 이을 수 있는지 판단합니다. -# 세부적인 과정은 다음과 같습니다. - -# 1. 이분 탐색을 수행하기 위해 left, right 값을 0과 1000001로 초기화합니다. -# 2. left와 right를 통해 mid 값을 구한 후 다익스트라를 수행합니다. -# 3. 다익스트라 수행은 기존의 다익스트라와 달리 최소 거리를 구하는 것이 아니라 -# 1번과 N번을 연결할 수 있는지 구하는 것이 핵심입니다. -# 따라서 거리 값은 mid 값을 넘긴 케이블의 수입니다. -# -# 4. 위 과정을 left 값이 right 값보다 클 때까지 반복합니다. -# 5. 최종적으로 구한 결과를 출력합니다. \ No newline at end of file diff --git a/Python_BOJ_2021/18115.py b/Python_BOJ_2021/18115.py deleted file mode 100644 index c3c5f1e..0000000 --- a/Python_BOJ_2021/18115.py +++ /dev/null @@ -1,22 +0,0 @@ -# 카드 놓기 -from collections import deque -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -cmd = deque(map(int, input().split())) -res = deque(range(1, n + 1)) -ans = deque() - -while cmd: - a = cmd.pop() - b = res.popleft() - - if a == 1: - ans.appendleft(b) - elif a == 2: - ans.insert(1, b) - elif a == 3: - ans.append(b) - -print(' '.join(map(str, ans))) \ No newline at end of file diff --git a/Python_BOJ_2021/18258.py b/Python_BOJ_2021/18258.py deleted file mode 100644 index f44cf38..0000000 --- a/Python_BOJ_2021/18258.py +++ /dev/null @@ -1,25 +0,0 @@ -# 큐 2 -from collections import deque -import sys -input = lambda : sys.stdin.readline().rstrip() - -queue = deque() -for _ in range(int(input())): - cmd = input().split() - - if cmd[0] == 'push': - queue.append(int(cmd[1])) - elif cmd[0] == 'pop': - if len(queue) == 0: print(-1) - else: print(queue.popleft()) - elif cmd[0] == 'size': - print(len(queue)) - elif cmd[0] == 'empty': - if len(queue) == 0: print(1) - else: print(0) - elif cmd[0] == 'front': - if len(queue) == 0: print(-1) - else: print(queue[0]) - elif cmd[0] == 'back': - if len(queue) == 0: print(-1) - else: print(queue[-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/18352.py b/Python_BOJ_2021/18352.py deleted file mode 100644 index bbb071c..0000000 --- a/Python_BOJ_2021/18352.py +++ /dev/null @@ -1,37 +0,0 @@ -# 특정 거리의 도시 찾기 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -n, m, k, x = map(int, input().split()) - -graph = [[] for _ in range(n + 1)] -visited = [-1] * (n + 1) -visited[x] = 0 -ans = list() - -for _ in range(m): - a, b = map(int, input().split()) - if a == b: - continue - graph[a].append(b) - -queue = deque([x]) -while queue: - cur = queue.popleft() - for next in graph[cur]: - if visited[next] == -1: - visited[next] = visited[cur] + 1 - queue.append(next) - -for i in range(n + 1): - if visited[i] == k: - ans.append(i) - -ans = sorted(ans) - -if len(ans) == 0: - print(-1) -else: - for i in ans: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/18353.py b/Python_BOJ_2021/18353.py deleted file mode 100644 index dfe110c..0000000 --- a/Python_BOJ_2021/18353.py +++ /dev/null @@ -1,18 +0,0 @@ -# 병사 배치하기 -from sys import stdin - -input = lambda: stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) -arr.reverse() - -dp = [1] * n - -for i in range(1, n): - for j in range(0, i): - if arr[j] < arr[i]: - dp[i] = max(dp[i], dp[j] + 1) - -print(n - max(dp)) - diff --git a/Python_BOJ_2021/18406.py b/Python_BOJ_2021/18406.py deleted file mode 100644 index b248471..0000000 --- a/Python_BOJ_2021/18406.py +++ /dev/null @@ -1,15 +0,0 @@ -# 럭키 스트레이트 -import sys -s = list(str(sys.stdin.readline().rstrip())) -left, right = 0, 0 - -for i in range(int(len(s) // 2)): - left += int(s[i]) - -for j in range(int(len(s) // 2), len(s)): - right += int(s[j]) - -if left == right: - print("LUCKY") -else: - print("READY") \ No newline at end of file diff --git a/Python_BOJ_2021/1863.py b/Python_BOJ_2021/1863.py deleted file mode 100644 index 0cb6d7f..0000000 --- a/Python_BOJ_2021/1863.py +++ /dev/null @@ -1,17 +0,0 @@ -# 스카이라인 쉬운거 - 못 품 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [list(map(int, input().split())) for _ in range(n)] -tmp = [0] * (n+1) -ans = 0 - -for i in range(n-1): - while len(tmp) != 0 and arr[i][1]> arr[i+1][1]: - tmp.pop() - ans += 1 - if len(tmp) != 0 and arr[i][1]> arr[i+1][1]: continue - tmp[i] = arr[i][1] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1871.py b/Python_BOJ_2021/1871.py deleted file mode 100644 index 74be01e..0000000 --- a/Python_BOJ_2021/1871.py +++ /dev/null @@ -1,15 +0,0 @@ -# 좋은 자동차 번호판 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = list(input().split('-')) - ans = 0 - - for i in range(3): - ans += (ord(s[0][i]) - 65) * 26 ** (2 - i) - - if abs(ans - int(s[1])) <= 100: - print('nice') - else: - print('not nice') \ No newline at end of file diff --git a/Python_BOJ_2021/1874.py b/Python_BOJ_2021/1874.py deleted file mode 100644 index 2eaef08..0000000 --- a/Python_BOJ_2021/1874.py +++ /dev/null @@ -1,28 +0,0 @@ -# 스택 수열 -import sys -input = lambda : sys.stdin.readline().rstrip() - -stack = list() -ans = list() -cnt = 1 -tmp = True - -for _ in range(int(input())): - n = int(input()) - - while cnt <= n: - stack.append(cnt) - ans.append('+') - cnt += 1 - - if stack[-1] == n: - stack.pop() - ans.append('-') - else: - tmp = False - -if tmp == False: - print('NO') -else: - for i in ans: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/1904.py b/Python_BOJ_2021/1904.py deleted file mode 100644 index 95c2fbd..0000000 --- a/Python_BOJ_2021/1904.py +++ /dev/null @@ -1,15 +0,0 @@ -# 01타일 - -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -d = [0] * 1000001 - -d[1] = 1 -d[2] = 2 - -for i in range(3, n+1): - d[i] = (d[i-1]+ d[i-2]) % 15746 - -print(d[n]) \ No newline at end of file diff --git a/Python_BOJ_2021/1912.py b/Python_BOJ_2021/1912.py deleted file mode 100644 index 780bb02..0000000 --- a/Python_BOJ_2021/1912.py +++ /dev/null @@ -1,12 +0,0 @@ -# 연속합 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) - -sum = [arr[0]] - -for i in range(n-1): - sum.append(max(sum[i] + arr[i+1], arr[i+1])) -print(max(sum)) \ No newline at end of file diff --git a/Python_BOJ_2021/1916.py b/Python_BOJ_2021/1916.py deleted file mode 100644 index 45062a7..0000000 --- a/Python_BOJ_2021/1916.py +++ /dev/null @@ -1,37 +0,0 @@ -# 최소비용 구하기 -# hoijae0194 1916 맞았습니다!! 42628 320 Python 3 / 수정 834 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - -n = int(input()) # 노드 -m = int(input()) # 엣지 -graph = [[] for _ in range(n + 1)] -distance = [INF] * (n + 1) - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append((to_, weight)) - -start, end = map(int, input().split()) - - -def dijkstra(start): - queue = list() - heapq.heappush(queue, (start, 0)) - distance[start] = 0 - while queue: - now, cost = heapq.heappop(queue) - if distance[now] < cost: - continue - for now2, cost2 in graph[now]: - cost3 = cost + cost2 - if distance[now2]> cost3: - distance[now2] = cost3 - heapq.heappush(queue, (now2, cost3)) - -# print(graph) -dijkstra(start) -# print(distance) -print(distance[end]) - diff --git a/Python_BOJ_2021/1916_2.py b/Python_BOJ_2021/1916_2.py deleted file mode 100644 index 50f68f6..0000000 --- a/Python_BOJ_2021/1916_2.py +++ /dev/null @@ -1,33 +0,0 @@ -# 최소비용 구하기 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -m = int(input()) -graph = [[] for _ in range(n + 1)] -distance = [int(1e9) for _ in range(n + 1)] - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append((to_, weight)) - -start, end = map(int, input().split()) - - -def dijikstra(start): - heqp = list() - heapq.heappush(heqp, (0, start)) - distance[start] = 0 - while heqp: - c_weight, c_node = heapq.heappop(heqp) - if distance[c_node] < c_weight: - continue - for n_node, n_weight in graph[c_node]: - cost = c_weight + n_weight - if distance[n_node]> cost: - distance[n_node] = cost - heapq.heappush(heqp, (cost, n_node)) - - -dijikstra(start) -print(distance[end]) \ No newline at end of file diff --git a/Python_BOJ_2021/1919.py b/Python_BOJ_2021/1919.py deleted file mode 100644 index e41287f..0000000 --- a/Python_BOJ_2021/1919.py +++ /dev/null @@ -1,16 +0,0 @@ -# 애너그램 만들기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -in_a, in_b = list(input()), list(input()) -a = [0 for _ in range(26)] -b = [0 for _ in range(26)] - -ans = 0 - -for i in range(0, len(in_a)): a[ord(in_a[i]) - 97] += 1 -for i in range(0, len(in_b)): b[ord(in_b[i]) - 97] += 1 -for i in range(26): - if a[i] != b[i]: ans += abs(a[i] - b[i]) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1920.py b/Python_BOJ_2021/1920.py deleted file mode 100644 index d0c2fdc..0000000 --- a/Python_BOJ_2021/1920.py +++ /dev/null @@ -1,35 +0,0 @@ -# 수 찾기 - -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def binary_search(arr, target, start, end): - while start <= end: - mid = (start + end) // 2 - - if arr[mid] == target: - return mid - - elif arr[mid]> target: - end = mid - 1 - - else: - start = mid + 1 - - return None - - -n = int(input()) -arr = list(map(int, input().split())) -arr.sort() -m = int(input()) -target = list(map(int, input().split())) - -for i in target: - ans = binary_search(arr, i, 0, n-1) - - if ans != None: - print(1) - else: - print(0) \ No newline at end of file diff --git a/Python_BOJ_2021/1926.py b/Python_BOJ_2021/1926.py deleted file mode 100644 index d07b855..0000000 --- a/Python_BOJ_2021/1926.py +++ /dev/null @@ -1,40 +0,0 @@ -# 그림 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [[False for _ in range(m)] for _ in range(n)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -ans, ans_cnt = 0, 0 - - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - visited[x][y] = True - size = 1 - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny] and graph[nx][ny] == 1: - visited[nx][ny] = True - queue.append((nx, ny)) - size += 1 - return size - - -for i in range(n): - for j in range(m): - if graph[i][j] == 1 and not visited[i][j]: - ans_cnt += 1 - ans = max(ans, bfs(i, j)) - - -print(ans_cnt) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1927.py b/Python_BOJ_2021/1927.py deleted file mode 100644 index 2e4c139..0000000 --- a/Python_BOJ_2021/1927.py +++ /dev/null @@ -1,14 +0,0 @@ -# 최소 힙 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -arr = [] -for _ in range(int(input())): - a = int(input()) - if a == 0: - if len(arr) == 0: - print(0) - else: - print(heapq.heappop(arr)) - else: - heapq.heappush(arr, a) \ No newline at end of file diff --git a/Python_BOJ_2021/1929.py b/Python_BOJ_2021/1929.py deleted file mode 100644 index ed6868c..0000000 --- a/Python_BOJ_2021/1929.py +++ /dev/null @@ -1,13 +0,0 @@ -# 소수 구하기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -m, n = map(int, input().split()) - -arr = [0] * (n + 1) - -for i in range(2, n+1): - if arr[i] == 0: - if i>= m: print(i) - for j in range(i, n+1, i): # i의 배수로 순환함 - arr[j] = 1 diff --git a/Python_BOJ_2021/1931.py b/Python_BOJ_2021/1931.py deleted file mode 100644 index f18b1f7..0000000 --- a/Python_BOJ_2021/1931.py +++ /dev/null @@ -1,23 +0,0 @@ -# 회의실배정 -import sys - -N = int(sys.stdin.readline()) -time_table = [] - -for _ in range(N): - start, end = map(int, sys.stdin.readline().split()) - time_table.append((start, end)) - -start_time = 0 -cnt = 0 - -time_table = sorted(time_table, key= lambda time : time[0]) -time_table = sorted(time_table, key= lambda time : time[1]) - - -for time in time_table: - if time[0]>= start_time: - start_time = time[1] - cnt += 1 - -print(cnt) diff --git a/Python_BOJ_2021/1931_2.py b/Python_BOJ_2021/1931_2.py deleted file mode 100644 index 214a47f..0000000 --- a/Python_BOJ_2021/1931_2.py +++ /dev/null @@ -1,21 +0,0 @@ -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list() - -for _ in range(n): - start, finish = map(int, input().split()) - arr.append((start, finish)) - -arr = sorted(arr, key= lambda time : time[0]) -arr = sorted(arr, key= lambda time : time[1]) - -cnt = 0 -tmp = -123456789 - -for i in range(n): - if arr[i][0]>= tmp: - tmp = arr[i][1] - cnt += 1 -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/1932.py b/Python_BOJ_2021/1932.py deleted file mode 100644 index 55c7c7c..0000000 --- a/Python_BOJ_2021/1932.py +++ /dev/null @@ -1,16 +0,0 @@ -# 정수 삼각형 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [list(map(int, input().split())) for _ in range(n)] -best = [[-1 for _ in range(n)] for _ in range(n)] - -ans = 0 -best[0][0] = arr[0][0] - -for i in range(1, n): - for j in range(0, i+1): - best[i][j] = arr[i][j] + max(best[i-1][j-1], best[i-1][j]) - -print(max(best[n-1])) \ No newline at end of file diff --git a/Python_BOJ_2021/1935.py b/Python_BOJ_2021/1935.py deleted file mode 100644 index 0da8983..0000000 --- a/Python_BOJ_2021/1935.py +++ /dev/null @@ -1,35 +0,0 @@ -# 후위 표기식 2 -import sys -input = lambda :sys.stdin.readline().rstrip() - -operator = '*+/-' - -n = int(input()) -s = input() - -num = [] -num_stack = [] - -for _ in range(n): - num.append(int(input())) - -for c in s: - if c in operator: - tmp1 = num_stack.pop() - tmp2 = num_stack.pop() - - if c == '*': - ans = tmp1 * tmp2 - elif c == '+': - ans = tmp1 + tmp2 - elif c == '/': - ans = tmp2 / tmp1 - elif c == '-': - ans = tmp2 - tmp1 - - num_stack.append(ans) - else: - num_stack.append(num[ord(c) - ord('A')]) - print(num_stack) - -print('%0.2f' %num_stack[-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/1937.py b/Python_BOJ_2021/1937.py deleted file mode 100644 index bac60cb..0000000 --- a/Python_BOJ_2021/1937.py +++ /dev/null @@ -1,30 +0,0 @@ -# 욕심쟁이 판다 -import sys -sys.setrecursionlimit(100001) -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -dp = [[0 for _ in range(n)] for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def dfs(x, y): - if dp[x][y]: return dp[x][y] - dp[x][y] = 1 - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny graph[x][y]: - dp[x][y] = max(dp[x][y], dfs(nx, ny) + 1) - return dp[x][y] - - -ans = 0 -for i in range(n): - for j in range(n): - ans = max(ans, dfs(i, j)) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1946.py b/Python_BOJ_2021/1946.py deleted file mode 100644 index 9ca9597..0000000 --- a/Python_BOJ_2021/1946.py +++ /dev/null @@ -1,23 +0,0 @@ -# 신입 사원 - -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - arr = [] - n = int(input()) - - for _ in range(n): - arr.append(list(map(int, input().split()))) - arr.sort(key = lambda x : x[0]) - - tmp = arr[0][1] - ans = 0 - - for i in range(1, n): - if arr[i][1]> tmp: - ans += 1 - else: - tmp = arr[i][1] - - print(n - ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1963.py b/Python_BOJ_2021/1963.py deleted file mode 100644 index c1f5a35..0000000 --- a/Python_BOJ_2021/1963.py +++ /dev/null @@ -1,53 +0,0 @@ -# 소수 경로 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -arr = [1 for _ in range(10000)] - - -def eratosthenes(): - for i in range(2, 100): - if arr[i] == 1: - for j in range(i, 10000, i): - arr[j] = 0 - - -def bfs(x): - queue.append(x) - visited[x] = 1 - while queue: - x = queue.popleft() - if x == y: - print(visited[x] - 1) - return - for i in range(10): - if i != 0: - nx = (x % 1000) + i * 1000 - if arr[nx] == 1 and visited[nx] == 0: - visited[nx] = visited[x] + 1 - queue.append(nx) - - nx = int(x / 1000) * 1000 + (x % 100) + i * 100 - if arr[nx] == 1 and visited[nx] == 0: - visited[nx] = visited[x] + 1 - queue.append(nx) - - nx = int(x / 100) * 100 + (x % 10) + i * 10 - if arr[nx] == 1 and visited[nx] == 0: - visited[nx] = visited[x] + 1 - queue.append(nx) - - nx = int(x / 10) * 10 + i - if arr[nx] == 1 and visited[nx] == 0: - visited[nx] = visited[x] + 1 - queue.append(nx) - - -eratosthenes() -T = int(input()) -for _ in range(T): - queue = deque() - visited = [0 for _ in range(10000)] - x, y = map(int, input().split()) - bfs(x) \ No newline at end of file diff --git a/Python_BOJ_2021/19644.py b/Python_BOJ_2021/19644.py deleted file mode 100644 index 285911e..0000000 --- a/Python_BOJ_2021/19644.py +++ /dev/null @@ -1,33 +0,0 @@ -# 좀비 떼가 기관총 진지에도 오다니 안풀려 -import sys -input = lambda :sys.stdin.readline().rstrip() - -l = int(input()) -ml, mk = map(int, input().split()) -c = int(input()) - -arr = [0] * l -for i in range(l): - arr[i] = int(input()) - -while arr: - if arr[0]> mk: # 맨 앞에 좀비의 피가 총알 뎀지보다 크면 바로 지뢰를 쓸 수 있는지 봐야함 - if c>= 1: # 지뢰 갯수가 있다면 사용 - arr[0] = 0 - c -= 1 - arr.pop(0) - else: # 지뢰 없으면 바로 게임 종료 - print("NO") - exit(0) - else: # 그 외의 경우는 사격 개시 - if len(arr)>= ml: - for i in range(ml): - arr[i] -= mk - else: - for i in range(len(arr)): - arr[i] -= mk - - if arr[0] <= 0: # 사격후 좀비의 피가 0이거나 0보다 작으면 - zombie = arr.pop(0) # popleft - -print("YES") \ No newline at end of file diff --git a/Python_BOJ_2021/1966.py b/Python_BOJ_2021/1966.py deleted file mode 100644 index 0eb2816..0000000 --- a/Python_BOJ_2021/1966.py +++ /dev/null @@ -1,23 +0,0 @@ -# 프린터 큐 -import sys -input = lambda :sys.stdin.readline().rstrip() - -for _ in range(int(input())): - n, m = map(int, input().split()) - imp = list(map(int, input().split())) - idx = list(range(n)) - idx[m] = 'tgt' - order = 0 - - while True: - if imp[0] == max(imp): - order += 1 - if idx[0] == 'tgt': - print(order) - break - else: - imp.pop(0) - idx.pop(0) - else: - imp.append(imp.pop(0)) - idx.append(idx.pop(0)) \ No newline at end of file diff --git a/Python_BOJ_2021/1969.py b/Python_BOJ_2021/1969.py deleted file mode 100644 index 1a8ab60..0000000 --- a/Python_BOJ_2021/1969.py +++ /dev/null @@ -1,30 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -arr = [list(map(str, input())) for _ in range(n)] -alphabet = [[0] * 26 for _ in range(m)] - - -for i in range(m): - for j in range(n): - alphabet[i][ord(arr[j][i]) - ord('A')] += 1 - -s = '' -for i in range(m): - max = -123456789 - idx = 0 - for j in range(26): - if alphabet[i][j]> max: - max = alphabet[i][j] - idx = j - s += chr(idx + ord('A')) - -print(s) - -ans = 0 -for i in range(n): - for j in range(m): - if (s[j] != arr[i][j]): - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1976.py b/Python_BOJ_2021/1976.py deleted file mode 100644 index 68dfc9b..0000000 --- a/Python_BOJ_2021/1976.py +++ /dev/null @@ -1,36 +0,0 @@ -# 여행 가자 -import sys -input = lambda : sys.stdin.readline().rstrip() -sys.setrecursionlimit(100001) - -n = int(input()) # 도시의 수 -m = int(input()) # 여행 계획에 속한 도시들의 수 - -visited = [0 for _ in range(n)] - -network = list() -for _ in range(n): - network.append(list(map(int, input().split()))) - -travel_city = list(map(int, input().split())) - - -def dfs(start): - visited[start] = 1 - for idx, j in enumerate(network[start]): - if j == 1 and visited[idx] == 0: - visited[idx] = 1 - dfs(idx) - - -dfs(travel_city[0] - 1) - -if 0 not in visited: - print('YES') - exit() - -for i in travel_city: - if visited[i-1] == 0: - print('NO') - exit() -print('YES') \ No newline at end of file diff --git a/Python_BOJ_2021/1976_2.py b/Python_BOJ_2021/1976_2.py deleted file mode 100644 index 93138fb..0000000 --- a/Python_BOJ_2021/1976_2.py +++ /dev/null @@ -1,28 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -m = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -plan = list(map(int, input().split())) -visited = [0] * n - - -def dfs(start): - visited[start] = 1 - for idx, j in enumerate(graph[start]): - if j == 1 and not visited[idx]: - visited[idx] = 1 - dfs(idx) - - -dfs(plan[0] - 1) -if 0 not in visited: - print("YES") - exit(0) - -for i in plan: - if visited[i - 1] == 0: - print("NO") - exit(0) -print("YES") diff --git a/Python_BOJ_2021/1978.py b/Python_BOJ_2021/1978.py deleted file mode 100644 index 45b09dc..0000000 --- a/Python_BOJ_2021/1978.py +++ /dev/null @@ -1,17 +0,0 @@ -# 소수 찾기 - -N = int(input()) -num = list(map(int, input().split())) - -cnt = 0 -count = 0 - -for i in num: - for j in range(1, i+1): - if i % j == 0: - cnt += 1 - if cnt == 2: - count += 1 - cnt = 0 - -print(count) \ No newline at end of file diff --git a/Python_BOJ_2021/19813.py b/Python_BOJ_2021/19813.py deleted file mode 100644 index 5759ae9..0000000 --- a/Python_BOJ_2021/19813.py +++ /dev/null @@ -1,9 +0,0 @@ -# Dates -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = input() - f = s.find('/')> 0 - a = [ *map(int, s.replace('.', '/').split('/'))] - print('%02d.%02d.%04d %02d/%02d/%04d' %(a[f], a[1-f], a[2], a[1-f], a[f], a[2])) \ No newline at end of file diff --git a/Python_BOJ_2021/1987.py b/Python_BOJ_2021/1987.py deleted file mode 100644 index cfb4243..0000000 --- a/Python_BOJ_2021/1987.py +++ /dev/null @@ -1,29 +0,0 @@ -# 알파벳 - pypy3로만 해결가능 -import sys -sys.setrecursionlimit(100001) -input = lambda : sys.stdin.readline().rstrip() - -r, c = map(int, input().split()) -graph = [list(map(lambda x: ord(x) - 65, input())) for _ in range(r)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -alpha = [0] * 26 -ans = 0 - - -def dfs(x, y, m): - global ans - ans = max(ans, m) - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < r and 0 <= ny < c and alpha[graph[nx][ny]] == 0: - alpha[graph[nx][ny]] = 1 - dfs(nx, ny, m+1) - alpha[graph[nx][ny]] = 0 - - -alpha[graph[0][0]] = 1 -dfs(0, 0, 1) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/1991.py b/Python_BOJ_2021/1991.py deleted file mode 100644 index f7e35a7..0000000 --- a/Python_BOJ_2021/1991.py +++ /dev/null @@ -1,38 +0,0 @@ -# 트리 순회 -import sys -input = lambda : sys.stdin.readline().rstrip() - -def preorder(node): - if node == '.': - return - print(node, end='') - preorder(tree[node][0]) - preorder(tree[node][1]) - -def inorder(node): - if node == '.': - return - inorder(tree[node][0]) - print(node, end='') - inorder(tree[node][1]) - -def postorder(node): - if node == '.': - return - postorder(tree[node][0]) - postorder(tree[node][1]) - print(node, end='') - - -n = int(input()) -tree = {} - -for _ in range(n): - root, left, right = input().split() - tree[root] = (left, right) - -preorder('A') -print() -inorder('A') -print() -postorder('A') \ No newline at end of file diff --git a/Python_BOJ_2021/20001.py b/Python_BOJ_2021/20001.py deleted file mode 100644 index 8c9829e..0000000 --- a/Python_BOJ_2021/20001.py +++ /dev/null @@ -1,21 +0,0 @@ -# 고무오리 디버깅 -import sys -arr = [] - -while True: - s = sys.stdin.readline().rstrip() - if s == "고무오리 디버깅 끝": - if len(arr) == 0: - print("고무오리야 사랑해") - break - else: - print("힝구") - break - elif s == "문제": - arr.append(1) - elif s == "고무오리": - if len(arr) == 0: - for _ in range(2): - arr.append(1) - else: - arr.pop() \ No newline at end of file diff --git a/Python_BOJ_2021/20007.py b/Python_BOJ_2021/20007.py deleted file mode 100644 index 0653379..0000000 --- a/Python_BOJ_2021/20007.py +++ /dev/null @@ -1,53 +0,0 @@ -# 떡 돌리기 왜 TLE ᅳᅳ -import sys -from heapq import * -input = lambda : sys.stdin.readline().rstrip() -INF = int(1e9) - -n, m, x, y = map(int, input().split()) -graph = [[] for _ in range(n)] -distance = [INF] * n -visited = [False] * n - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append([to_, weight]) - graph[to_].append([from_, weight]) - - -def dijikstra(start): - queue = list() - heappush(queue, (0, start)) - distance[start] = 0 - - while queue: - cost, current = heappop(queue) - - if visited[current]: continue - for i in graph[current]: - cost2 = cost + i[1] - if not visited[i[0]] and distance[i[0]]> cost2: - distance[i[0]] = cost2 - heappush(queue, (cost2, i[0])) - visited[current] = True - - -def process(): - dijikstra(y) - distance.sort() - - if distance[n - 1] * 2> x: - print(-1) - - day, idx, tmp = 0, 0, 0 - while idx < n: - while idx < n and tmp + (distance[idx] * 2) <= x: - tmp += distance[idx] * 2 - idx += 1 - - tmp = 0 - day += 1 - return day - - -print(process()) \ No newline at end of file diff --git a/Python_BOJ_2021/2003.py b/Python_BOJ_2021/2003.py deleted file mode 100644 index 7ae38e3..0000000 --- a/Python_BOJ_2021/2003.py +++ /dev/null @@ -1,23 +0,0 @@ -# 수들의 합2 - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) - -answer = 0 -start, end = 0, 0 - -while start <= end <= n: - tmp = sum(arr[start:end]) - if tmp == m: - answer += 1 - if tmp <= m: - end += 1 - continue - elif tmp> m and start < end: - start += 1 - continue - else: - start += 1 - end += 1 - -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/2003_2.py b/Python_BOJ_2021/2003_2.py deleted file mode 100644 index 9c0dfd2..0000000 --- a/Python_BOJ_2021/2003_2.py +++ /dev/null @@ -1,17 +0,0 @@ -# 수들의 합 2 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) - -ans, interval_sum, end = 0, 0, 0 - -for start in range(n): - while interval_sum < m and end < n: - interval_sum += arr[end] - end += 1 - if interval_sum == m: ans += 1 - interval_sum -= arr[start] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/20124.py b/Python_BOJ_2021/20124.py deleted file mode 100644 index 976050e..0000000 --- a/Python_BOJ_2021/20124.py +++ /dev/null @@ -1,19 +0,0 @@ -# 모르고리즘 회장님 추천 받습니다. -import sys -input = lambda : sys.stdin.readline().rstrip() - -max = 0 -ans = '' - -for i in range(int(input())): - name, score = input().split() - if int(score)> max: - max = int(score) - ans = name - - elif int(score) == max: - if name < ans: - max = int(score) - ans = name - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/20301.py b/Python_BOJ_2021/20301.py deleted file mode 100644 index 894b6e7..0000000 --- a/Python_BOJ_2021/20301.py +++ /dev/null @@ -1,21 +0,0 @@ -# 반전 요세푸스 -from collections import deque - -N, K, M = map(int, input().split()) -arr = deque(i + 1 for i in range(N)) - -ans = [] -i = -(K - 1) -flag = False - -while arr: - if len(ans) % M == 0 and len(ans)>= M and not flag: - flag = True - i = K - elif len(ans) % M == 0 and len(ans)>= M and flag: - flag = False - i = -(K - 1) - arr.rotate(i) - ans.append(arr.popleft()) - -print("\n".join(map(str, ans))) \ No newline at end of file diff --git a/Python_BOJ_2021/20528.py b/Python_BOJ_2021/20528.py deleted file mode 100644 index cd3d0c8..0000000 --- a/Python_BOJ_2021/20528.py +++ /dev/null @@ -1,12 +0,0 @@ -# 끝말잇기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -N = int(input()) -data = list(map(str, input().split())) -arr = set() - -for i in range(N): - arr.add(data[i][0]) - -print(1 if len(arr) == 1 else 0) \ No newline at end of file diff --git a/Python_BOJ_2021/20540.py b/Python_BOJ_2021/20540.py deleted file mode 100644 index ce9e2cd..0000000 --- a/Python_BOJ_2021/20540.py +++ /dev/null @@ -1,23 +0,0 @@ -# 연길이의 이상형 -import sys -mbti = list(map(str, sys.stdin.readline().rstrip())) - -for i in range(4): - if mbti[i] == "E": - mbti[i] = "I" - elif mbti[i] == "I": - mbti[i] = "E" - elif mbti[i] == "S": - mbti[i] = "N" - elif mbti[i] == "N": - mbti[i] = "S" - elif mbti[i] == "T": - mbti[i] = "F" - elif mbti[i] == "F": - mbti[i] = "T" - elif mbti[i] == "J": - mbti[i] = "P" - else: - mbti[i] = "J" - -print(''.join(mbti)) \ No newline at end of file diff --git a/Python_BOJ_2021/2075.py b/Python_BOJ_2021/2075.py deleted file mode 100644 index 662d919..0000000 --- a/Python_BOJ_2021/2075.py +++ /dev/null @@ -1,18 +0,0 @@ -# N번째 큰수 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -heap = [] -for _ in range(n): - s = list(map(int, input().split())) - if len(heap) == 0: - for i in s: - heapq.heappush(heap, i) - else: - for i in s: - if heap[0] < i: - heapq.heappush(heap, i) - heapq.heappop(heap) - -print(heap[0]) \ No newline at end of file diff --git a/Python_BOJ_2021/2075_2.py b/Python_BOJ_2021/2075_2.py deleted file mode 100644 index 83d9be7..0000000 --- a/Python_BOJ_2021/2075_2.py +++ /dev/null @@ -1,19 +0,0 @@ -# N번째 큰 수 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -heap = [] -n = int(input()) - -for _ in range(n): - s = list(map(int, input().split())) - if not len(heap): - for i in s: - heapq.heappush(heap, i) - else: - for i in s: - if heap[0] < i: - heapq.heappop(heap) - heapq.heappush(heap, i) - -print(heapq.heappop(heap)) \ No newline at end of file diff --git a/Python_BOJ_2021/2108.py b/Python_BOJ_2021/2108.py deleted file mode 100644 index 902d621..0000000 --- a/Python_BOJ_2021/2108.py +++ /dev/null @@ -1,26 +0,0 @@ -# 통계학 - -import sys -from collections import Counter - -n = int(sys.stdin.readline()) -arr = sorted([int(sys.stdin.readline()) for _ in range(n)]) - -avg = round(sum(arr) / n) -range = max(arr) - min(arr) - -tmp = len(arr) // 2 -mid = arr[tmp] - - -print(avg) -print(mid) -if n == 1: - print(arr[0]) -else: - most = Counter(arr).most_common(2) - if most[0][1] == most[1][1]: - print(most[1][0]) - else: - print(most[0][0]) -print(int(range)) \ No newline at end of file diff --git a/Python_BOJ_2021/2110.py b/Python_BOJ_2021/2110.py deleted file mode 100644 index 410b270..0000000 --- a/Python_BOJ_2021/2110.py +++ /dev/null @@ -1,29 +0,0 @@ -# 공유기 설치 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, c = map(int, input().split()) -arr = sorted([int(input()) for _ in range(n)]) - -start = 0 -end = max(arr) - - -while start <= end: - cnt = 1 - value = arr[0] - mid = (start + end) // 2 - - for i in range(n): - if arr[i]>= value + mid: - value = arr[i] - cnt += 1 - - if cnt>= c: - start = mid + 1 - ans = mid - else: - end = mid -1 - - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2116.py b/Python_BOJ_2021/2116.py deleted file mode 100644 index 96d53bd..0000000 --- a/Python_BOJ_2021/2116.py +++ /dev/null @@ -1,40 +0,0 @@ -# 주사위 쌓기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -dice = [list(map(int, input().split())) for _ in range(n)] - -# A B C D E F 일때, -# A F -# B D -# C E 가 주사위 위 아래 짝이된다. - -route = {0 : 5, 1 : 3, 2 : 4, 3 : 1, 4 : 2, 5 : 0} -max_ans = 0 -for i in range(6): - ans = list() - - tmp = [1, 2, 3, 4, 5, 6] - tmp.remove(dice[0][i]) - - next = dice[0][route[i]] - - tmp.remove(next) - ans.append(max(tmp)) - - for j in range(1, n): - tmp = [1, 2, 3, 4, 5, 6] - tmp.remove(next) - - next = dice[j][route[dice[j].index(next)]] - - tmp.remove(next) - ans.append(max(tmp)) - - ans = sum(ans) - - if max_ans < ans: - max_ans = ans - -print(max_ans) \ No newline at end of file diff --git "a/Python_BOJ_2021/2138-354円235円221円354円232円251円.py" "b/Python_BOJ_2021/2138-354円235円221円354円232円251円.py" deleted file mode 100644 index 27d5c64..0000000 --- "a/Python_BOJ_2021/2138-354円235円221円354円232円251円.py" +++ /dev/null @@ -1,25 +0,0 @@ -n = int(input()) -first = list(map(int, input())) -second = list(map(int, input())) - - -def switch(a, b): - tmp = a[:] - cnt = 0 - for i in range(1, n): - if tmp[i-1] == b[i-1]: - continue - cnt += 1 - - for j in range(i-1, i+2): - if j < n: - tmp[j] = 1 - tmp[j] - return cnt if tmp == b else float('inf') - - -result = switch(first, second) -first[0] = 1 - first[0] -first[1] = 1 - first[1] - -result = min(result, 1 + switch(first, second)) -print(result if result != float('inf') else -1) \ No newline at end of file diff --git a/Python_BOJ_2021/2138.py b/Python_BOJ_2021/2138.py deleted file mode 100644 index c8d3848..0000000 --- a/Python_BOJ_2021/2138.py +++ /dev/null @@ -1,42 +0,0 @@ -# 전구와 스위치 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -first = list(map(int,input())) -second = list(map(int, input())) -ans = -1 - -''' -000 -110 -001 -010 -''' - - -def switch(start): - global first, ans - - tmp = first[:] - cnt = 0 - - for i in range(start, n): - if not (0 < i and tmp[i - 1] == second[i - 1]): - cnt += 1 - - if 0 < i: - tmp[i - 1] = 1 if tmp[i - 1] == 0 else 0 - - if i < n-1: - tmp[i + 1] = 1 if tmp[i + 1] == 0 else 0 - tmp[i] = 1 if tmp[i] == 0 else 0 - - if i == n-1 and tmp == second: - ans = cnt if ans == -1 else min(ans, cnt) - break - -switch(0) -switch(1) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2146.py b/Python_BOJ_2021/2146.py deleted file mode 100644 index 5fd0f9f..0000000 --- a/Python_BOJ_2021/2146.py +++ /dev/null @@ -1,59 +0,0 @@ -# 다리만들기 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() -sys.setrecursionlimit(10 ** 8) - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -ans, k = 10 ** 9, 1 - - -def dfs(x, y): - visited[x][y] = True - graph[x][y] = k - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny] and graph[nx][ny]: - dfs(nx, ny) - - -def bfs(z): - global ans - distance = [[-1] * n for _ in range(n)] - queue = deque() - - for i in range(n): - for j in range(n): - if graph[i][j] == z: - queue.append((i, j)) - distance[i][j] = 0 - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if graph[nx][ny] and graph[nx][ny] != z: - ans = min(ans, distance[x][y]) - return - - if not graph[nx][ny] and distance[nx][ny] == -1: - distance[nx][ny] = distance[x][y] + 1 - queue.append((nx, ny)) - - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [[False] * n for _ in range(n)] - -for i in range(n): - for j in range(n): - if graph[i][j] == 1 and not visited[i][j]: - dfs(i, j) - k += 1 - -for i in range(1, k + 1): - bfs(i) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2153.py b/Python_BOJ_2021/2153.py deleted file mode 100644 index 559fb0e..0000000 --- a/Python_BOJ_2021/2153.py +++ /dev/null @@ -1,23 +0,0 @@ -# 소수 단어 -import sys - -tmp, ans = sys.stdin.readline().rstrip(), 0 - -lower = 'abcdefghijklmnopqrstuvwxyz' -upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - -for i in range(len(tmp)): - if tmp[i] in lower: - ans += (ord(tmp[i]) - 96) - elif tmp[i] in upper: - ans += (ord(tmp[i]) - 64 + 26) - -p = 0 -for i in range(2, ans): - if ans % i == 0: - p += 1 - -if p == 0: - print("It is a prime word.") -else: - print("It is not a prime word.") \ No newline at end of file diff --git a/Python_BOJ_2021/2156.py b/Python_BOJ_2021/2156.py deleted file mode 100644 index 42191a7..0000000 --- a/Python_BOJ_2021/2156.py +++ /dev/null @@ -1,23 +0,0 @@ -# 포도주 시식 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) - -wines = [0] -for _ in range(n): - wines.append(int(input())) - -dp = [0] * n -dp[0] = wines[0] - -if n>= 2: - dp[1] = wines[0] + wines[1] - -if n>= 3: - dp[2] = max(wines[0] + wines[2], wines[1] + wines[2], dp[1]) - - for i in range(3, n): - dp[i] = max(dp[i-3] + wines[i-1] + wines[i], dp[i-2] + wines[i], dp[i-1]) - -print(dp[n-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/2161.py b/Python_BOJ_2021/2161.py deleted file mode 100644 index f071cc0..0000000 --- a/Python_BOJ_2021/2161.py +++ /dev/null @@ -1,12 +0,0 @@ -# 카드 -import sys -from collections import deque -N = int(sys.stdin.readline().rstrip()) -cards = deque(i + 1 for i in range(N)) - -ans = [] -while len(cards)> 1: - ans.append(cards.popleft()) - cards.rotate(-1) -ans.append(cards[0]) -print(' '.join(map(str, ans))) \ No newline at end of file diff --git a/Python_BOJ_2021/2178.py b/Python_BOJ_2021/2178.py deleted file mode 100644 index 2c93703..0000000 --- a/Python_BOJ_2021/2178.py +++ /dev/null @@ -1,30 +0,0 @@ -# 미로 탐색 -from collections import deque - -n, m = map(int, input().split()) -graph = [list(map(int, input().rstrip())) for _ in range(n)] - -dx = [-1, 1, 0, 0] -dy = [0, 0, 1, -1] - - -def bfs(x, y): - queue = deque() - queue.append((0, 0)) - - while queue: - x, y = queue.popleft() - - for i in range(4): - nx = x + dx[i] - ny = y + dy[i] - - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1: - graph[nx][ny] = graph[x][y] + 1 - queue.append((nx, ny)) - - print(graph[n - 1][m - 1]) - - -bfs(0, 0) \ No newline at end of file diff --git a/Python_BOJ_2021/2178_2.py b/Python_BOJ_2021/2178_2.py deleted file mode 100644 index 357304c..0000000 --- a/Python_BOJ_2021/2178_2.py +++ /dev/null @@ -1,29 +0,0 @@ -# 미로 탐색 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n, m = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * m for _ in range(n)] - - -def bfs(): - queue = deque() - queue.append((0, 0)) - visited[0][0] = 1 - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1 and not visited[nx][ny]: - queue.append((nx, ny)) - visited[nx][ny] = visited[x][y] + 1 - - -bfs() -print(visited[n - 1][m - 1]) \ No newline at end of file diff --git a/Python_BOJ_2021/2178_3.py b/Python_BOJ_2021/2178_3.py deleted file mode 100644 index 163719e..0000000 --- a/Python_BOJ_2021/2178_3.py +++ /dev/null @@ -1,25 +0,0 @@ -from collections import deque - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n, m = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * m for _ in range(n)] - - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - visited[x][y] = 1 - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 1 and not visited[nx][ny]: - queue.append((nx, ny)) - visited[nx][ny] = visited[x][y] + 1 - - -bfs(0, 0) -print(visited[n - 1][m - 1]) \ No newline at end of file diff --git a/Python_BOJ_2021/2193.py b/Python_BOJ_2021/2193.py deleted file mode 100644 index c5a55cb..0000000 --- a/Python_BOJ_2021/2193.py +++ /dev/null @@ -1,20 +0,0 @@ -# 이친수 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -d = [0] * 100 - - -def fibo(x): - if x == 1 or x == 2: - return 1 - - if d[x] != 0: - return d[x] - - d[x] = fibo(x-1) + fibo(x-2) - return d[x] - - -print(fibo(n)) \ No newline at end of file diff --git a/Python_BOJ_2021/2206.py b/Python_BOJ_2021/2206.py deleted file mode 100644 index 6ae06f6..0000000 --- a/Python_BOJ_2021/2206.py +++ /dev/null @@ -1,47 +0,0 @@ -# 벽 부수고 이동하기 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[False for _ in range(m)] for _ in range(n)] -broke = [[False for _ in range(m)] for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(x, y): - ans = -1 - queue = deque() - queue.append([x, y, 1, False]) - visited[x][y] = True - - while queue: - x, y, cnt, destroy = queue.popleft() - if x == n-1 and y == m-1: - if ans < 0: ans = cnt - else: ans = min(cnt, ans) - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not destroy: - if graph[nx][ny] == 0: - if not visited[nx][ny]: - queue.append([nx, ny, cnt+1, destroy]) - visited[nx][ny] = True - - else: - if not broke[nx][ny]: - broke[nx][ny] = True - queue.append([nx, ny, cnt+1, True]) - - else: - if graph[nx][ny] == 0: - if not broke[nx][ny]: - broke[nx][ny] = True - queue.append([nx, ny, cnt+1, destroy]) - return ans - - -print(bfs(0, 0)) \ No newline at end of file diff --git a/Python_BOJ_2021/2212.py b/Python_BOJ_2021/2212.py deleted file mode 100644 index 2e70b3d..0000000 --- a/Python_BOJ_2021/2212.py +++ /dev/null @@ -1,22 +0,0 @@ -# 센서 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -k = int(input()) -arr = list(map(int, input().split())) -tmp = [0] * n -arr.sort() - -if n <= k: - ans = 0 -else: - for i in range(n-1): - tmp[i] = arr[i+1] - arr[i] - tmp.sort() - - for _ in range(k-1): - tmp.pop(len(tmp)-1) - ans = sum(tmp) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2217.py b/Python_BOJ_2021/2217.py deleted file mode 100644 index 9963908..0000000 --- a/Python_BOJ_2021/2217.py +++ /dev/null @@ -1,15 +0,0 @@ -# 로프 - -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [int(input()) for _ in range(n)] -arr.sort(reverse=True) -print(arr) -ans = list() - -for i in range(n): - ans.append(arr[i] * (i+1)) - -print(max(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/2230.py b/Python_BOJ_2021/2230.py deleted file mode 100644 index 602e415..0000000 --- a/Python_BOJ_2021/2230.py +++ /dev/null @@ -1,19 +0,0 @@ -# 수 고르기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -arr = [int(input()) for _ in range(n)] -arr.sort() - -left, right = 0, 0 -answer = 2345678910 - -while left < n and right < n: - if arr[right] - arr[left] < m: - right += 1 - else: - answer = min(answer, arr[right] - arr[left]) - left += 1 - -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/2231.py b/Python_BOJ_2021/2231.py deleted file mode 100644 index d98cc90..0000000 --- a/Python_BOJ_2021/2231.py +++ /dev/null @@ -1,15 +0,0 @@ -# 분해합 - -n = int(input()) -ans = [] - -for i in range(1, n+1): - if n == i + sum(map(int, str(i))): - ans.append(i) - -if len(ans) == 0: - print('0') -else: - print(min(ans)) - - diff --git a/Python_BOJ_2021/2231_2.py b/Python_BOJ_2021/2231_2.py deleted file mode 100644 index 4105b7e..0000000 --- a/Python_BOJ_2021/2231_2.py +++ /dev/null @@ -1,20 +0,0 @@ -# 분해합 -import sys -n = int(sys.stdin.readline().rstrip()) - - -def function(n): - ans = n - while n> 0: - tmp = n % 10 - n = n // 10 - ans += tmp - return ans - - -k = 0 -for i in range(int(n * 0.80), n + 1): - if function(i) == n: - k = i - break -print(k) \ No newline at end of file diff --git a/Python_BOJ_2021/2292.py b/Python_BOJ_2021/2292.py deleted file mode 100644 index 8f515ae..0000000 --- a/Python_BOJ_2021/2292.py +++ /dev/null @@ -1,11 +0,0 @@ -# 벌집 - -n = int(input()) -round = 1 - -while n> 1: - n = n - ( 6 * round) - round += 1 - -print(round) - diff --git a/Python_BOJ_2021/2304.py b/Python_BOJ_2021/2304.py deleted file mode 100644 index fa5312c..0000000 --- a/Python_BOJ_2021/2304.py +++ /dev/null @@ -1,35 +0,0 @@ -# 창고 다각형 -import sys -input = lambda :sys.stdin.readline().rstrip() - -max_L, max_H, max_Idx = 0, 1, 0 -arr = list() - -for i in range(int(input())): - idx, height = map(int, input().split()) - arr.append([idx, height]) - - if max_L < idx: # 가장 마지막 idx - max_L = idx - - if max_H < height: # 가장 높은것 - max_H = height # 높이 - max_Idx = idx # 높은 녀석의 idx - -list = [0] * (max_L + 1) -for i, h in arr: - list[i] = h - -tmp, ans = 0, 0 -for i in range(max_Idx + 1): - if list[i]> tmp: - tmp = list[i] - ans += tmp - -tmp = 0 -for i in range(max_L, max_Idx, -1): - if list[i]> tmp: - tmp = list[i] - ans += tmp - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2309.py b/Python_BOJ_2021/2309.py deleted file mode 100644 index 6674dc8..0000000 --- a/Python_BOJ_2021/2309.py +++ /dev/null @@ -1,15 +0,0 @@ -import sys - -arr = [int(sys.stdin.readline().rstrip()) for _ in range(9)] -arr.sort() -sum = sum(arr) - -for i in range(9): - for j in range(i+1, 9): - if (sum - arr[i] - arr[j]) == 100: - for k in range(9): - if i == k or j == k: - continue - else: - print(arr[k]) - exit(0) \ No newline at end of file diff --git a/Python_BOJ_2021/2309_2.py b/Python_BOJ_2021/2309_2.py deleted file mode 100644 index 24da844..0000000 --- a/Python_BOJ_2021/2309_2.py +++ /dev/null @@ -1,21 +0,0 @@ -arr = [0] * 9 -for i in range(len(arr)): - arr[i] = int(input()) - -sum_height = sum(arr) - -flag = False -for i in range(len(arr)): - for j in range(i + 1, len(arr)): - if not flag: - if sum_height - arr[i] - arr[j] == 100: - arr[i] = 0 - arr[j] = 0 - flag = True - -arr = sorted(arr) -for i in arr: - if i == 0: - continue - else: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/2309_3.py b/Python_BOJ_2021/2309_3.py deleted file mode 100644 index 0975917..0000000 --- a/Python_BOJ_2021/2309_3.py +++ /dev/null @@ -1,17 +0,0 @@ -arr = [int(input()) for _ in range(9)] - -sum = sum(arr) -flag = False - -for i in range(9): - for j in range(i + 1, 9): - if sum - arr[i] - arr[j] == 100: - if not flag: - arr[i] = 0 - arr[j] = 0 - flag = True - -arr = sorted(arr) -for i in arr: - if i == 0 : continue - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/2346.py b/Python_BOJ_2021/2346.py deleted file mode 100644 index 0a70234..0000000 --- a/Python_BOJ_2021/2346.py +++ /dev/null @@ -1,15 +0,0 @@ -# 풍선 터뜨리기 -from collections import deque -n = int(input()) -q = deque(enumerate(map(int, input().split()))) -ans = [] - -while q: - idx, num = q.popleft() - ans.append(idx + 1) - if num> 0: - q.rotate(-(num-1)) - elif num < 0: - q.rotate(-num) - -print(' '.join(map(str, ans))) \ No newline at end of file diff --git a/Python_BOJ_2021/2386.py b/Python_BOJ_2021/2386.py deleted file mode 100644 index 13f17d3..0000000 --- a/Python_BOJ_2021/2386.py +++ /dev/null @@ -1,14 +0,0 @@ -# 도비의 영어 공부 -import sys - -while True: - s = sys.stdin.readline().rstrip().lower() - if s[0] == '#': break - arr = list(s[2:]) - - cnt = 0 - for i in range(len(arr)): - if s[0] == arr[i]: - cnt += 1 - - print(f'{s[0]} {cnt}') \ No newline at end of file diff --git a/Python_BOJ_2021/2437.py b/Python_BOJ_2021/2437.py deleted file mode 100644 index 3348358..0000000 --- a/Python_BOJ_2021/2437.py +++ /dev/null @@ -1,16 +0,0 @@ -# 저울 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) -arr.sort() -print(arr) -ans = 1 - -for i in range(n): - if ans < arr[i]: - break - ans += arr[i] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2446.py b/Python_BOJ_2021/2446.py deleted file mode 100644 index 3ae6796..0000000 --- a/Python_BOJ_2021/2446.py +++ /dev/null @@ -1,6 +0,0 @@ -n = int(input()) - -for i in range(1, n+1): - print(' ' * (i-1) + '*' * (2*(n-i)+1)) -for i in range(2,n+1): - print(' ' * (n-i) + '*' * (2*i-1)) \ No newline at end of file diff --git a/Python_BOJ_2021/2447.py b/Python_BOJ_2021/2447.py deleted file mode 100644 index bf1b776..0000000 --- a/Python_BOJ_2021/2447.py +++ /dev/null @@ -1,20 +0,0 @@ -# 별 찍기 -import sys - -N = int(input()) - - -def star(i, j): - while i != 0: - if i % 3 == 1 and j % 3 == 1: - sys.stdout.write(' ') - return None - i = i // 3 - j = j // 3 - sys.stdout.write('*') - - -for i in range(N): - for j in range(N): - star(i, j) - print() diff --git a/Python_BOJ_2021/2468.py b/Python_BOJ_2021/2468.py deleted file mode 100644 index 2aee614..0000000 --- a/Python_BOJ_2021/2468.py +++ /dev/null @@ -1,32 +0,0 @@ -# 안전영역 -import sys -sys.setrecursionlimit(100001) -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def dfs(x, y, h): - visited[x][y] = True - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny] and graph[nx][ny]> h: - dfs(nx, ny, h) - - -ans = 1 -for depth in range(0, 101): - visited = [[False] * n for _ in range(n)] - cnt = 0 - for i in range(n): - for j in range(n): - if graph[i][j]> depth and not visited[i][j]: - cnt += 1 - visited[i][j] = True - dfs(i, j, depth) - ans = max(ans, cnt) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2495.py b/Python_BOJ_2021/2495.py deleted file mode 100644 index 9a16807..0000000 --- a/Python_BOJ_2021/2495.py +++ /dev/null @@ -1,23 +0,0 @@ -# 연속 구간 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def cnt(s): - cnt = 1 - max_cnt = 1 - compare = s[0] - - for n in s[1:]: - if n == compare: - cnt += 1 - else: - max_cnt = max(max_cnt, cnt) - compare = n - cnt = 1 - max_cnt = max(max_cnt, cnt) - return max_cnt - - -for _ in range(3): - print(cnt(input())) \ No newline at end of file diff --git a/Python_BOJ_2021/2503.py b/Python_BOJ_2021/2503.py deleted file mode 100644 index d17c0f2..0000000 --- a/Python_BOJ_2021/2503.py +++ /dev/null @@ -1,36 +0,0 @@ -# 숫자 야구 -from itertools import permutations - -n = int(input()) -arr =[0 for i in range(n)] -for i in range(n): - arr[i] = list(map(int, input().split())) - -result = 0 - -def sol(x): - cnt= 0 - for i in range(n): - strike = 0 - ball_arr = set() - ball = 0 - for j in range(3): - if str(x)[j] == str(arr[i][0])[j]: - strike += 1 - ball_arr.add(str(x)[j]) - ball_arr.add(str(arr[i][0])[j]) - ball = 6 - len(ball_arr) - strike - if strike == arr[i][1] and ball == arr[i][2]: - cnt += 1 - if cnt == n: - return True - - -for i in permutations(range(1, 10), 3): - num = 0 - for j in range(3): - num += i[j] * 10 ** j - if sol(num) is True: - result += 1 - -print(result) diff --git a/Python_BOJ_2021/2504.py b/Python_BOJ_2021/2504.py deleted file mode 100644 index e7289c8..0000000 --- a/Python_BOJ_2021/2504.py +++ /dev/null @@ -1,73 +0,0 @@ -# 괄호의 값 -import sys -input = lambda : sys.stdin.readline().rstrip() -data = input().strip() - - -def check(a): - stack = [] - for i in a: - if i == '(' or i == '[': - stack.append(i) - print(stack) - elif i == ')' and stack: - if stack[-1] == '(': - stack = stack[:-1] - print(stack) - else: - stack.append(i) - print(stack) - elif i == ']' and stack: - if stack[-1] == '[': - stack = stack[:-1] - print(stack) - else: - stack.append(i) - print(stack) - else: - stack.append(i) - print(stack) - - if stack: - return False - else: - return True - - -def solve(b): - stack = [] - for j in b: - if j == '(' or j == '[': - stack.append(j) - elif j == ')': - if stack[-1] == '(': - stack[-1] = 2 - else: - tmp = 0 - for i in range(len(stack) -1, -1, -1): - if stack[i] == '(': - stack[-1] = tmp * 2 - break - else: - tmp += stack[i] - stack = stack[:-1] - elif j == ']': - if stack[-1] == '[': - stack[-1] = 3 - else: - tmp = 0 - for i in range(len(stack) -1, -1, -1): - if stack[i] == '[': - stack[-1] = tmp * 3 - break - else: - tmp += stack[i] - stack = stack[:-1] - return sum(stack) - - -if not check(data): - print(0) -else: - print(solve(data)) - diff --git a/Python_BOJ_2021/2523.py b/Python_BOJ_2021/2523.py deleted file mode 100644 index 2e6e6cb..0000000 --- a/Python_BOJ_2021/2523.py +++ /dev/null @@ -1,8 +0,0 @@ -# 별 찍기 - 13 - -n = int(input()) - -for i in range(1,n+1): - print('*' * i) -for j in range(1,n): - print('*' * (n-j)) diff --git a/Python_BOJ_2021/2562.py b/Python_BOJ_2021/2562.py deleted file mode 100644 index 6369902..0000000 --- a/Python_BOJ_2021/2562.py +++ /dev/null @@ -1,8 +0,0 @@ -list = [] - -for _ in range(9): - a = int(input()) - list.append(a) - -print(max(list)) -print(list.index(max(list))+1) \ No newline at end of file diff --git a/Python_BOJ_2021/2563.py b/Python_BOJ_2021/2563.py deleted file mode 100644 index d06bacc..0000000 --- a/Python_BOJ_2021/2563.py +++ /dev/null @@ -1,18 +0,0 @@ -# 색종이 -import sys -input = lambda : sys.stdin.readline().rstrip() - -graph = [[0] * 100 for _ in range(100)] -ans = 0 - -n = int(input()) -for i in range(n): - x, y = map(int,input().split()) - - for a in range(x, x + 10): - for b in range(y, y + 10): - if graph[a][b] == 1: continue - graph[a][b] = 1 - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2563_2.py b/Python_BOJ_2021/2563_2.py deleted file mode 100644 index d596b01..0000000 --- a/Python_BOJ_2021/2563_2.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() -graph = [[0] * 100 for _ in range(100)] - -n = int(input()) -for _ in range(n): - a, b = map(int, input().split()) - - for i in range(a, a + 10): - for j in range(b, b + 10): - if graph[i][j] == 1: continue - graph[i][j] = 1 - -ans = 0 -for i in range(100): - for j in range(100): - if graph[i][j] == 1: - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2567.py b/Python_BOJ_2021/2567.py deleted file mode 100644 index 0b4e2f3..0000000 --- a/Python_BOJ_2021/2567.py +++ /dev/null @@ -1,22 +0,0 @@ -# 색종이 - 2 -graph = [[0] * 101 for _ in range(101)] - -for _ in range(int(input())): - x, y = map(int, input().split()) - - for i in range(x, x + 10): - for j in range(y, y + 10): - graph[i][j] = 1 - -ans = 0 -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -for i in range(len(graph)): - for j in range(len(graph[i])): - if graph[i][j] == 1: - for d in range(4): - nx, ny = i + dx[d], j + dy[d] - if graph[nx][ny] == 0 or nx < 0 or nx> 100 or ny < 0 or ny> 100: - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2573.py b/Python_BOJ_2021/2573.py deleted file mode 100644 index 4b91121..0000000 --- a/Python_BOJ_2021/2573.py +++ /dev/null @@ -1,54 +0,0 @@ -# 빙산 -import sys -from collections import deque, defaultdict -input = lambda : sys.stdin.readline().rstrip() - - -def bfs(start, maps, visited): - ice_berg = defaultdict(int) - queue = deque() - queue.append(start) - dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - while queue: - x, y = queue.popleft() - visited[x][y] = 1 - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == 0: - ice_berg[(x, y)] += 1 - elif maps[nx][ny] != 0 and not visited[nx][ny]: - visited[nx][ny] = 1 - queue.append((nx, ny)) - return ice_berg - - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] - - -def solution(r, c, maps): - ans = 0 - while True: - visited = [[0 for _ in range(c)] for _ in range(r)] - continent = 0 - - for x in range(r): - for y in range(c): - if maps[x][y] != 0 and not visited[x][y]: - ice_berg = bfs((x, y), maps, visited) - continent += 1 - - if continent> 1: - return ans - if continent == 0: - return 0 - - for (x, y), cnt in ice_berg.items(): - maps[x][y] = 0 if maps[x][y] < cnt else maps[x][y] - cnt - ans += 1 - - -print(solution(n, m, graph)) \ No newline at end of file diff --git a/Python_BOJ_2021/2577.py b/Python_BOJ_2021/2577.py deleted file mode 100644 index 2f91d8f..0000000 --- a/Python_BOJ_2021/2577.py +++ /dev/null @@ -1,16 +0,0 @@ -a = int(input()) -b = int(input()) -c = int(input()) - -total = str(a * b * c) -total_list = [] - -for i in range(len(total)): - total_list.append(total[i]) - -cnt = 0 - -while cnt <= 9: - num = total_list.count(str(cnt)) - cnt += 1 - print(num) \ No newline at end of file diff --git a/Python_BOJ_2021/2578.py b/Python_BOJ_2021/2578.py deleted file mode 100644 index c8db53a..0000000 --- a/Python_BOJ_2021/2578.py +++ /dev/null @@ -1,54 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -bingo = [list(map(int, input().split())) for _ in range(5)] -tmp = [list(map(int, input().split())) for _ in range(5)] -cmd = list() -for i in range(5): - for j in range(5): - cmd.append(tmp[i][j]) - - -def find_bingo(): - total = 0 - for i in range(5): - cnt1 = 0 - for j in range(5): - if bingo[i][j] == 0: - cnt1 += 1 - if cnt1 == 5: - total += 1 - for i in range(5): - cnt2 = 0 - for j in range(5): - if bingo[j][i] == 0: - cnt2 += 1 - if cnt2 == 5: - total += 1 - cnt3 = 0 - for i in range(5): - if bingo[i][i] == 0: - cnt3 += 1 - if cnt3 == 5: - total += 1 - cnt4 = 0 - for i in range(5): - if bingo[i][4 - i] == 0: - cnt4 += 1 - if cnt4 == 5: - total += 1 - return total - - -cnt = 0 -for k in range(len(cmd)): - cnt += 1 - for i in range(5): - for j in range(5): - if cmd[k] == bingo[i][j]: - bingo[i][j] = 0 - if find_bingo()>= 3: - print(cnt) - exit(0) - - diff --git a/Python_BOJ_2021/2579.py b/Python_BOJ_2021/2579.py deleted file mode 100644 index e6ad581..0000000 --- a/Python_BOJ_2021/2579.py +++ /dev/null @@ -1,25 +0,0 @@ -# 계단 오르기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) - -stairs = [0] -visit = [0] - -for i in range(n): - stairs.append(int(input())) - -if n>= 1: - visit.append(stairs[1]) - -if n>= 2: - visit.append(stairs[1] + stairs[2]) - -if n>= 3: - visit.append(max(stairs[1]+stairs[3], stairs[2]+stairs[3])) - -for i in range(4, n+1): - visit.append(max(visit[i-3] + stairs[i-1] + stairs[i], visit[i-2] + stairs[i])) - -print(visit[-1]) diff --git a/Python_BOJ_2021/2581.py b/Python_BOJ_2021/2581.py deleted file mode 100644 index 827cf9b..0000000 --- a/Python_BOJ_2021/2581.py +++ /dev/null @@ -1,21 +0,0 @@ -# 소수 -M = int(input()) -N = int(input()) - -cnt = 0 -numbers = [] - -for i in range(M, N+1): - for j in range(1, i+1): - if i % j == 0: - cnt += 1 - - if cnt == 2: - numbers.append(i) - cnt = 0 - -if numbers == []: - print('-1') -else: - print(sum(numbers)) - print(min(numbers)) \ No newline at end of file diff --git a/Python_BOJ_2021/2583.py b/Python_BOJ_2021/2583.py deleted file mode 100644 index 837811c..0000000 --- a/Python_BOJ_2021/2583.py +++ /dev/null @@ -1,42 +0,0 @@ -# 영역 구하기 -import sys -sys.setrecursionlimit(10001) -input = lambda : sys.stdin.readline().rstrip() - -m, n, k = map(int,input().strip().split()) -graph = [[0] * n for i in range(m)] -visited = [[False] * n for i in range(m)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -for i in range(k): - x1, y1, x2, y2 = map(int,input().strip().split()) - for x in range((m - y2), (m - y1), 1): - for y in range(x1, x2, 1): - graph[x][y] = 1 - - -def dfs(x, y): - global val - val += 1 - visited[x][y] = True - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= ny < n and 0 <= nx < m: - if not visited[nx][ny] and graph[nx][ny] == 0: - dfs(nx, ny) - - -ans = [] -for i in range(m): - for j in range(n): - if not visited[i][j] and graph[i][j] == 0: - val = 0 - dfs(i, j) - ans.append(val) - -print(len(ans)) -for i in sorted(ans): - print(i, end=" ") \ No newline at end of file diff --git a/Python_BOJ_2021/2589.py b/Python_BOJ_2021/2589.py deleted file mode 100644 index 560973b..0000000 --- a/Python_BOJ_2021/2589.py +++ /dev/null @@ -1,36 +0,0 @@ -# 보물섬 -from collections import deque -import sys -input = lambda : sys.stdin.readline().rstrip() - -L, W = map(int, input().split()) -graph = [list(map(str,input())) for _ in range(L)] -visited = [[False] * W for _ in range(L)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(x, y): - cnt = 0 - queue = deque() - queue.append((x, y, 0)) - visited[x][y] = True - - while queue: - x, y, d = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < L and 0 <= ny < W: - if graph[nx][ny] == 'L' and not visited[nx][ny]: - queue.append((nx, ny, d+1)) - visited[nx][ny] = True - cnt = d + 1 - return cnt - - -ans = 0 -for i in range(L): - for j in range(W): - if graph[i][j] == 'L': - ans = max(ans, bfs(i, j)) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2596.py b/Python_BOJ_2021/2596.py deleted file mode 100644 index 4e6eeab..0000000 --- a/Python_BOJ_2021/2596.py +++ /dev/null @@ -1,61 +0,0 @@ -# 비밀편지 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -s = list(str(input())) -ans = [] -err_cnt = 0 - -word = [['0', '0', '0', '0', '0', '0'], # A - ['0', '0', '1', '1', '1', '1'], # B - ['0', '1', '0', '0', '1', '1'], # C - ['0', '1', '1', '1', '0', '0'], # D - ['1', '0', '0', '1', '1', '0'], # E - ['1', '0', '1', '0', '0', '1'], # F - ['1', '1', '0', '1', '0', '1'], # G - ['1', '1', '1', '0', '1', '0']] # H -alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] - - -def modify(arr): - k = list() - for i in range(8): - chk = 0 - for j in range(6): - if arr[j] != word[i][j]: - chk += 1 - k.append([chk, i]) - k.sort() - if k[0][0] == 1: - return k[0][1] - else: - return -1 - - -for i in range(n): - flag = False - for j in range(8): - if s[0:6] == word[j]: - ans.append(alpha[j]) - flag = True - else: - pass - - if not flag: - if modify(s[0:6]) == -1: - err_cnt = 1 - m = i + 1 - break - else: - ans.append(alpha[modify(s[0:6])]) - del s[0:6] - if err_cnt == 1: - break - -if err_cnt == 1: - print(m) -else: - for i in range(n): - print(ans[i], end='') - diff --git a/Python_BOJ_2021/2605.py b/Python_BOJ_2021/2605.py deleted file mode 100644 index 1d9f182..0000000 --- a/Python_BOJ_2021/2605.py +++ /dev/null @@ -1,13 +0,0 @@ -# 줄 세우기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -cmd = list(map(int, input().split())) -arr = [] - -for i in range(1, n + 1): - arr.insert(len(arr) - cmd[i - 1], i) # insert 함수 처음 봄... - -for i in arr: - print(i, end=' ') \ No newline at end of file diff --git a/Python_BOJ_2021/2606-bfs.py b/Python_BOJ_2021/2606-bfs.py deleted file mode 100644 index 80be6f3..0000000 --- a/Python_BOJ_2021/2606-bfs.py +++ /dev/null @@ -1,32 +0,0 @@ -# 바이러스 - dfs -from collections import deque - -node = int(input()) -edge = int(input()) - -graph = [[] for _ in range(node + 1)] -visited = [False] * (node + 1) - -for _ in range(edge): - a, b = map(int, input().split()) - graph[a].append(b) - graph[b].append(a) - - -def bfs(): - cnt = 0 - will_visit = deque([1]) - - while will_visit: - start = will_visit.popleft() - if visited[start] == False: - visited[start] = True - cnt += 1 - - for i in graph[start]: - if visited[i] == False: - will_visit.append(i) - - return cnt - 1 - -print(bfs()) \ No newline at end of file diff --git a/Python_BOJ_2021/2606-dfs.py b/Python_BOJ_2021/2606-dfs.py deleted file mode 100644 index b533f40..0000000 --- a/Python_BOJ_2021/2606-dfs.py +++ /dev/null @@ -1,28 +0,0 @@ -# 바이러스 - dfs - -node = int(input()) -edge = int(input()) - -graph = [[] for _ in range(node + 1)] -visited = [False] * (node + 1) -cnt = 0 - -for _ in range(edge): - a,b = map(int, input().split()) - graph[a].append(b) - graph[b].append(a) - - -def dfs(start_node): - global cnt - cnt += 1 - visited[start_node] = True - - for i in graph[start_node]: - if not visited[i]: - dfs(i) - - return cnt - 1 - - -print(dfs(1)) \ No newline at end of file diff --git a/Python_BOJ_2021/2606.py b/Python_BOJ_2021/2606.py deleted file mode 100644 index f13ca5b..0000000 --- a/Python_BOJ_2021/2606.py +++ /dev/null @@ -1,26 +0,0 @@ -# 바이러스 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -w = int(input()) -graph = [[] for _ in range(n + 1)] -visited = [0] * (n + 1) - -for _ in range(w): - from_, to_ = map(int, input().split()) - graph[from_].append(to_) - graph[to_].append(from_) -cnt = 0 - -def dfs(node): - global cnt - visited[node] = 1 - for i in graph[node]: - if not visited[i]: - dfs(i) - cnt += 1 - return cnt - - -print(dfs(1)) \ No newline at end of file diff --git a/Python_BOJ_2021/2608.py b/Python_BOJ_2021/2608.py deleted file mode 100644 index b346cc3..0000000 --- a/Python_BOJ_2021/2608.py +++ /dev/null @@ -1,89 +0,0 @@ -# 로마 숫자 -import sys -input = lambda : sys.stdin.readline().rstrip() - -num = {'I' : 1, 'V' : 5, 'X' : 10, 'L' : 50, 'C' : 100, 'D' : 500, 'M' : 1000} -extra = {'IV' : 4, 'IX' : 9, 'XL' : 40, 'XC' : 90, 'CD' : 400, 'CM' : 900} - -num1, num2 = input(), input() - - -def toNum(r): - res = 0 - n = len(r) - idx = 0 - - while idx < n: - if idx == n - 1: - res += num[r[idx]] - break - - flag = True - if r[idx] == 'I': - if r[idx + 1] == 'V' or r[idx + 1] == 'X': - res += extra[r[idx : idx + 2]] - flag = False - elif r[idx] == 'X': - if r[idx + 1] == 'L' or r[idx + 1] == 'C': - res += extra[r[idx : idx + 2]] - flag = False - - elif r[idx] == 'C': - if r[idx + 1] == 'D' or r[idx + 1] == 'M': - res += extra[r[idx : idx + 2]] - flag = False - - if not flag: - idx += 2 - else: - res += num[r[idx]] - idx += 1 - - return res - - -a, b = toNum(num1), toNum(num2) -total = a + b -print(total) - -ans = "" -total = str(total) -t = len(total) -n = len(total) - -while n: - nums = int(total[t - n]) - if n == 4: - ans += 'M' * nums - elif n == 3: - if nums == 9: - ans += 'CM' - elif nums == 4: - ans += 'CD' - else: - if nums>= 5: - ans += 'D' - ans += 'C' * (nums % 5) - - elif n == 2: - if nums == 9: - ans += 'XC' - elif nums == 4: - ans += 'XL' - else: - if nums>= 5: - ans += 'L' - ans += 'X' * (nums % 5) - - elif n == 1: - if nums == 9: - ans += 'IX' - elif nums == 4: - ans += 'IV' - else: - if nums>= 5: - ans += 'V' - ans += 'I' * (nums % 5) - n -= 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2609.py b/Python_BOJ_2021/2609.py deleted file mode 100644 index 67300b7..0000000 --- a/Python_BOJ_2021/2609.py +++ /dev/null @@ -1,19 +0,0 @@ -# 최대공약수와 최소공배수 -a, b = map(int, input().split()) - - -def gcd(a, b): - if a % b == 0: return b - else: return gcd(b, a % b) - - -if a> b: - gcd = gcd(a, b) - lcm = (a * b) // gcd - print(gcd) - print(lcm) -else: - gcd = gcd(b, a) - lcm = (a * b) // gcd - print(gcd) - print(lcm) \ No newline at end of file diff --git a/Python_BOJ_2021/2615.py b/Python_BOJ_2021/2615.py deleted file mode 100644 index d48ef8b..0000000 --- a/Python_BOJ_2021/2615.py +++ /dev/null @@ -1,3 +0,0 @@ -# 오목 -graph = [list(map(int, input().split())) for _ in range(19)] -print(graph) \ No newline at end of file diff --git a/Python_BOJ_2021/2630.py b/Python_BOJ_2021/2630.py deleted file mode 100644 index a74a520..0000000 --- a/Python_BOJ_2021/2630.py +++ /dev/null @@ -1,36 +0,0 @@ -# 색종이 만들기 -import sys -input = lambda :sys.stdin.readline().rstrip() -sys.setrecursionlimit(1000001) - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -w, b = 0, 0 # 답이 될 값들 지정 - - -def solution(x, y, t): - global w, b - color = graph[x][y] - flag = 0 - - for i in range(x, x + t): - if flag: break - for j in range(y, y + t): - if graph[i][j] != color: - solution(x, y, t//2) - solution(x + t//2, y, t//2) - solution(x, y + t//2, t//2) - solution(x + t//2, y + t//2, t//2) - flag = 1 - break - - if not flag: - if graph[x][y] == 1: - b += 1 - else: - w += 1 - - -solution(0, 0, n) -print(w) -print(b) \ No newline at end of file diff --git a/Python_BOJ_2021/2636.py b/Python_BOJ_2021/2636.py deleted file mode 100644 index 28f14be..0000000 --- a/Python_BOJ_2021/2636.py +++ /dev/null @@ -1,58 +0,0 @@ -# 치즈 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -left = 0 - -for x in range(n): - for y in range(m): - if graph[x][y] == 1: - left += 1 - - -def bfs(left): - while queue: - x, y = queue.popleft() - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < m and not visited[nx][ny]: - visited[nx][ny] = True - - if graph[nx][ny] == 1: - graph[nx][ny] = 2 - left -= 1 - else: - queue.append([nx, ny]) - return left - - -def remove(): - for i in range(n): - for j in range(m): - if graph[i][j] == 2: - graph[i][j] = 0 - - -queue = deque() -cnt = 0 -tmp = left - -while left != 0: - visited = [[False] * m for _ in range(n)] - queue.append([0, 0]) - visited[0][0] = True - left = bfs(left) - if left != 0: - tmp = left - cnt += 1 - remove() - -print(cnt) -print(tmp) \ No newline at end of file diff --git a/Python_BOJ_2021/2638.py b/Python_BOJ_2021/2638.py deleted file mode 100644 index 960afe1..0000000 --- a/Python_BOJ_2021/2638.py +++ /dev/null @@ -1,49 +0,0 @@ -# 치즈 -import sys -sys.setrecursionlimit(100001) -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def cheese_check(n, m): - for x in range(n): - for y in range(m): - if graph[x][y] == 1: - return False - return True - - -def dfs(x, y): - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m and not visited[nx][ny]: - if graph[nx][ny] != 0: - graph[nx][ny] += 1 - else: - visited[nx][ny] = True - dfs(nx, ny) - - -def remove_cheese(graph, n, m): - for x in range(n): - for y in range(m): - if graph[x][y]>= 3: - graph[x][y] = 0 - elif graph[x][y]> 0: - graph[x][y] = 1 - return graph - - -ans = 0 -while True: - visited = [[False] * m for _ in range(n)] - if cheese_check(n, m): - print(ans) - break - visited[0][0] = True - dfs(0, 0) - graph = remove_cheese(graph, n, m) - ans += 1 \ No newline at end of file diff --git a/Python_BOJ_2021/2644.py b/Python_BOJ_2021/2644.py deleted file mode 100644 index 1d61091..0000000 --- a/Python_BOJ_2021/2644.py +++ /dev/null @@ -1,36 +0,0 @@ -# 촌수계산 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -a, b = map(int, input().split()) -m = int(input()) -s = [[] for _ in range(n + 1)] - -family_ship = [0 for _ in range(n + 1)] - - -def bfs(start): - queue = deque() - queue.append(start) - visited = [0 for _ in range(n + 1)] - visited[start] = 1 - - while queue: - x = queue.popleft() - for i in s[x]: - if visited[i] == 0: - visited[i] = 1 - family_ship[i] = family_ship[x] + 1 - queue.append(i) - - -for i in range(m): - x, y = map(int, input().split()) - s[x].append(y) - s[y].append(x) -print(s) -bfs(a) - -print(family_ship[b] if family_ship[b] != 0 else -1) \ No newline at end of file diff --git a/Python_BOJ_2021/2644_2.py b/Python_BOJ_2021/2644_2.py deleted file mode 100644 index 4790ea8..0000000 --- a/Python_BOJ_2021/2644_2.py +++ /dev/null @@ -1,37 +0,0 @@ -# 촌수계산 -from collections import deque - -n = int(input()) -a, b = map(int, input().split()) - -family_tree = [[] for _ in range(n + 1)] -m = int(input()) - -for _ in range(m): - x, y = map(int, input().split()) - family_tree[x].append(y) - family_tree[y].append(x) - -answer = [0 for _ in range(n + 1)] - - -def bfs(node): - queue = deque() - queue.append(node) - visited = [0 for _ in range(n + 1)] - visited[node] = 1 - - while queue: - x = queue.popleft() - for i in family_tree[x]: - if not visited[i]: - visited[i] =1 - answer[i] = answer[x] + 1 - queue.append(i) - - -bfs(a) -if answer[b] != 0: - print(answer[b]) -else: - print(-1) \ No newline at end of file diff --git a/Python_BOJ_2021/2665.py b/Python_BOJ_2021/2665.py deleted file mode 100644 index 49c6e5c..0000000 --- a/Python_BOJ_2021/2665.py +++ /dev/null @@ -1,43 +0,0 @@ -# 미로 만들기 -import heapq, sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [list(map(int, input())) for _ in range(n)] - -for i in range(n): - for j in range(n): - if arr[i][j] == 0: - arr[i][j] = 1 - else: - arr[i][j] = 0 - -INF = sys.maxsize -dist = [[INF] * n for _ in range(n)] -heap = list() - - -def dijkstra(): - dist[0][0] = 0 - heapq.heappush(heap, (0, 0, 0)) - - while heap: - cost, row, col = heapq.heappop(heap) - - if dist[row][col] < cost: - continue - - for dx, dy in (-1, 0), (1, 0), (0, -1), (0, 1): - n_row = row + dx - n_col = col + dy - - if 0 <= n_row < n and 0 <= n_col < n: - n_cost = cost + arr[n_row][n_col] - - if n_cost < dist[n_row][n_col]: - heapq.heappush(heap, (n_cost, n_row, n_col)) - dist[n_row][n_col] = n_cost - - -dijkstra() -print(dist[n-1][n-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/2667.py b/Python_BOJ_2021/2667.py deleted file mode 100644 index 276900f..0000000 --- a/Python_BOJ_2021/2667.py +++ /dev/null @@ -1,41 +0,0 @@ -# 단지번호붙이기 - -n = int(input()) - -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * n for _ in range(n)] - -dx = [-1, 1, 0, 0] -dy = [0, 0, 1, -1] - - -def dfs (x, y): - visited[x][y] = 1 - global nums - - if graph[x][y] == 1: - nums += 1 - - for i in range(4): - nx = x + dx[i] - ny = y + dy[i] - - if 0 <= nx < n and 0 <= ny < n: - if visited[nx][ny] == 0 and graph[nx][ny] == 1: - dfs(nx, ny) - - -numlist = [] -nums = 0 - -for a in range(n): - for b in range(n): - if graph[a][b] == 1 and visited[a][b] == 0: - dfs(a, b) - numlist.append(nums) - nums = 0 - -print(len(numlist)) - -for n in sorted(numlist): - print(n) \ No newline at end of file diff --git a/Python_BOJ_2021/2667_2.py b/Python_BOJ_2021/2667_2.py deleted file mode 100644 index a88827e..0000000 --- a/Python_BOJ_2021/2667_2.py +++ /dev/null @@ -1,39 +0,0 @@ -# 단지번호붙이기 -import sys -input = lambda :sys.stdin.readline().rstrip() -sys.setrecursionlimit(100001) - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n = int(input()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * n for _ in range(n)] -cnt = 0 - - -def dfs(x, y, num): - global cnt - visited[x][y] = 1 - - if graph[x][y] == 1: - cnt += 1 - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if graph[nx][ny] == 1 and not visited[nx][ny]: - dfs(nx, ny, num) - visited[nx][ny] = 1 - -arr = [] -for i in range(n): - for j in range(n): - if graph[i][j] == 1 and not visited[i][j]: - dfs(i, j, 1) - arr.append(cnt) - cnt = 0 - -print(len(arr)) -arr.sort() -for i in arr: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/2671.py b/Python_BOJ_2021/2671.py deleted file mode 100644 index 718cb00..0000000 --- a/Python_BOJ_2021/2671.py +++ /dev/null @@ -1,15 +0,0 @@ -# 잠수함식별 -import re, sys - -p = re.compile("(100+1+|01)+") -s = sys.stdin.readline().rstrip() - -m = p.fullmatch(s) -if (m == None): - print('NOISE') -else: - if(m.end() ==len(s)): - print('SUBMARINE') - else: - print('NOISE') - diff --git a/Python_BOJ_2021/2675.py b/Python_BOJ_2021/2675.py deleted file mode 100644 index b0d222a..0000000 --- a/Python_BOJ_2021/2675.py +++ /dev/null @@ -1,15 +0,0 @@ -# 문자열 반복 - -T = int(input()) - -for i in range(T): - R, S = input().split(' ') - R = int(R) - S = list(S) - - memory = [] - for j in range(len(S)): - for k in range(R): - memory.append(S[j]) - - print(str.join('', memory)) \ No newline at end of file diff --git a/Python_BOJ_2021/2693.py b/Python_BOJ_2021/2693.py deleted file mode 100644 index 71f2f6e..0000000 --- a/Python_BOJ_2021/2693.py +++ /dev/null @@ -1,6 +0,0 @@ -# N번째 큰 수 - -for _ in range(int(input())): - arr = list(map(int, input().split())) - arr.sort(reverse=True) - print(arr[2]) \ No newline at end of file diff --git a/Python_BOJ_2021/2711.py b/Python_BOJ_2021/2711.py deleted file mode 100644 index 08371ed..0000000 --- a/Python_BOJ_2021/2711.py +++ /dev/null @@ -1,14 +0,0 @@ -# 오타맨 고창영 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - ans = list() - a = list(map(str, input().split())) - for i in range(len(a[1])): - if i == int(a[0]) - 1: - pass - else: - ans.append(a[1][i]) - - print(''.join(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/2712.py b/Python_BOJ_2021/2712.py deleted file mode 100644 index c630dbf..0000000 --- a/Python_BOJ_2021/2712.py +++ /dev/null @@ -1,19 +0,0 @@ -# 미국 스타일 -import sys -input = lambda : sys.stdin.readline() - -for _ in range(int(input())): - a, b = map(str, input().split()) - if b == 'kg': - a = float(a) * 2.2046 - b = 'lb' - elif b == 'lb': - a = float(a) * 0.4536 - b = 'kg' - elif b == 'l': - a = float(a) * 0.2642 - b = 'g' - else: - a = float(a) * 3.7854 - b = 'l' - print('%.4f' %a, b) diff --git a/Python_BOJ_2021/2720.py b/Python_BOJ_2021/2720.py deleted file mode 100644 index ad7189d..0000000 --- a/Python_BOJ_2021/2720.py +++ /dev/null @@ -1,44 +0,0 @@ -# - -def calc(ssum): - q, d, n, p = 0, 0, 0, 0 - while ssum != 0: - if ssum>= 25: - q += ssum // 25 - ssum %= 25 - - if 10 <= ssum < 25: - d += ssum // 10 - ssum %= 10 - - if 5 <= ssum < 10: - n += ssum // 5 - ssum %= 5 - - if 1 <= ssum < 5: - p += ssum // 1 - ssum -= p - return q, d, n, p - - -for _ in range(int(input())): - ssum = int(input()) - q, d, n, p = 0, 0, 0, 0 - while ssum != 0: - if ssum>= 25: - q += ssum // 25 - ssum %= 25 - - if 10 <= ssum < 25: - d += ssum // 10 - ssum %= 10 - - if 5 <= ssum < 10: - n += ssum // 5 - ssum %= 5 - - if 1 <= ssum < 5: - p += ssum // 1 - ssum -= p - print(q, d, n, p) - diff --git a/Python_BOJ_2021/2744.py b/Python_BOJ_2021/2744.py deleted file mode 100644 index c1f4a8c..0000000 --- a/Python_BOJ_2021/2744.py +++ /dev/null @@ -1,2 +0,0 @@ -# 대소문자 바꾸기 -print(input().swapcase()) \ No newline at end of file diff --git a/Python_BOJ_2021/2747.py b/Python_BOJ_2021/2747.py deleted file mode 100644 index a704cca..0000000 --- a/Python_BOJ_2021/2747.py +++ /dev/null @@ -1,13 +0,0 @@ -# 피보나치 수 -import sys - -N = int(sys.stdin.readline().rstrip()) - -arr = list(0 for _ in range(N + 1)) -arr[0] = 0 -arr[1] = 1 - -for i in range(2, N + 1): - arr[i] = arr[i - 1] + arr[i - 2] - -print(arr[N]) \ No newline at end of file diff --git a/Python_BOJ_2021/2748.py b/Python_BOJ_2021/2748.py deleted file mode 100644 index 566ab7f..0000000 --- a/Python_BOJ_2021/2748.py +++ /dev/null @@ -1,17 +0,0 @@ -# 피보나치 함수2 - -import sys -n = int(sys.stdin.readline().rstrip()) - -d = [0] * 100 - -def fibo(x): - if x == 1 or x == 2: - return 1 - - if d[x] != 0: - return d[x] - d[x] = fibo(x-1) + fibo(x-2) - return d[x] - -print(fibo(n)) \ No newline at end of file diff --git a/Python_BOJ_2021/2750.py b/Python_BOJ_2021/2750.py deleted file mode 100644 index a7cd9ec..0000000 --- a/Python_BOJ_2021/2750.py +++ /dev/null @@ -1,7 +0,0 @@ -# 수 정렬하기 -import sys - -input = lambda : sys.stdin.readline().rstrip() - -ans = sorted([int(input()) for i in range(int(input()))]) -print(*ans, sep='\n') \ No newline at end of file diff --git a/Python_BOJ_2021/2751.py b/Python_BOJ_2021/2751.py deleted file mode 100644 index b22b7cd..0000000 --- a/Python_BOJ_2021/2751.py +++ /dev/null @@ -1,25 +0,0 @@ -# 수 정렬하기 퀵솔트도 시간초과 -# -# N = int(input()) -# arr = [int(input()) for _ in range(N)] -# -# -# def quick_sort(arr): -# if len(arr) <= 1: -# return arr -# -# pivot = arr[0] -# tail = arr[1:] -# -# left_side = [x for x in tail if x <= pivot] -# right_side = [x for x in tail if x> pivot] -# -# return quick_sort(left_side) + [pivot] + quick_sort(right_side) -# -# -# print(*quick_sort(arr), sep='\n') - -import sys - -ans = sorted([int(sys.stdin.readline().rstrip()) for i in range(int(sys.stdin.readline().rstrip()))]) -print(*ans, sep='\n') \ No newline at end of file diff --git a/Python_BOJ_2021/2753.py b/Python_BOJ_2021/2753.py deleted file mode 100644 index 3498eb5..0000000 --- a/Python_BOJ_2021/2753.py +++ /dev/null @@ -1,6 +0,0 @@ -year = int(input()) - -if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: - print('1') -else: - print('0') \ No newline at end of file diff --git a/Python_BOJ_2021/2754.py b/Python_BOJ_2021/2754.py deleted file mode 100644 index 543428a..0000000 --- a/Python_BOJ_2021/2754.py +++ /dev/null @@ -1,14 +0,0 @@ -# 학점계산 -import sys -input = lambda :sys.stdin.readline().rstrip() - -arr = dict() -for _ in range(int(input())): - s = input() - if s in arr: - arr[s] += 1 - else: - arr[s] = 1 - -arr = sorted(arr.items(), key = lambda x: (-x[1], x[0])) -print(arr[0][0]) \ No newline at end of file diff --git a/Python_BOJ_2021/2775.py b/Python_BOJ_2021/2775.py deleted file mode 100644 index 2c20e25..0000000 --- a/Python_BOJ_2021/2775.py +++ /dev/null @@ -1,13 +0,0 @@ -# 부녀회장이 될테야 - -T = int(input()) - -for i in range(T): - a = int(input()) - b = int(input()) - people = [i for i in range(1, b+1)] # 0 floor - - for _ in range(a): - for room_num in range(1, b): - people[room_num] += people[room_num - 1] - print(people[-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/2789.py b/Python_BOJ_2021/2789.py deleted file mode 100644 index f975989..0000000 --- a/Python_BOJ_2021/2789.py +++ /dev/null @@ -1,11 +0,0 @@ -# 유학 금지 - -pw = "CAMBRIDGE" -s = input() -ans = '' -for i in range(len(s)): - if s[i] in pw: - continue - else: - ans += s[i] -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2798.py b/Python_BOJ_2021/2798.py deleted file mode 100644 index 0e31ca9..0000000 --- a/Python_BOJ_2021/2798.py +++ /dev/null @@ -1,16 +0,0 @@ -# 블랙잭 - -N, M = map(int, input().split()) -Cards = list(map(int, input().split())) - -ans = 0 - -for i in range(N-2): - for j in range(i+1, N-1): - for k in range(j+1, N): - total = Cards[i] + Cards[j] + Cards[k] - - if total <= M: - ans = max(total, ans) - -print(ans) diff --git a/Python_BOJ_2021/2798_2.py b/Python_BOJ_2021/2798_2.py deleted file mode 100644 index 3645ad4..0000000 --- a/Python_BOJ_2021/2798_2.py +++ /dev/null @@ -1,11 +0,0 @@ -n, m = map(int, input().split()) -arr = list(map(int, input().split())) - -sum, ans = 0, -123456789 -for i in range(n - 2): - for j in range(i + 1, n - 1): - for k in range(j + 1, n): - sum = arr[i] + arr[j] + arr[k] - if sum <= m: - ans = max(ans, sum) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2798_3.py b/Python_BOJ_2021/2798_3.py deleted file mode 100644 index ca7b1df..0000000 --- a/Python_BOJ_2021/2798_3.py +++ /dev/null @@ -1,11 +0,0 @@ -n, m = map(int,input().split()) -card = list(map(int, input().split())) -ans = -123456789 - -for i in range(n): - for j in range(i + 1, n): - for k in range(j + 1, n): - tmp = card[i] + card[j] + card[k] - if tmp <= m: - ans = max(ans, tmp) -print(ans) diff --git a/Python_BOJ_2021/2800.py b/Python_BOJ_2021/2800.py deleted file mode 100644 index 3acd6b6..0000000 --- a/Python_BOJ_2021/2800.py +++ /dev/null @@ -1,31 +0,0 @@ -# 괄호 제거 -from itertools import combinations -import sys - -s = list(input()) -print(s) - -p, idx = [], [] -for i, val in enumerate(s): - if val == '(': - s[i] = '' - p += [i] - if val == ')': - s[i] = '' - idx += [[p.pop(), i]] - -print(p) -print(idx) -out = set() - -for i in range(len(idx)): - for j in combinations(idx, i): - print(j) - p = s[:] - for v, w in j: - p[v] = '(' - p[w] = ')' - out.add(''.join(p)) - -for i in sorted(out): - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/2804.py b/Python_BOJ_2021/2804.py deleted file mode 100644 index 225cc07..0000000 --- a/Python_BOJ_2021/2804.py +++ /dev/null @@ -1,21 +0,0 @@ -# 크로스워즈 만들기 - -a, b = map(str,input().split()) -arr = [['.'] * len(a) for _ in range(len(b))] - -tmp = list() # 겹치는 부분 찾기 -for i in range(len(a)): - for j in range(len(b)): - if a[i] == b[j]: - tmp.append([i, j]) - -# 맨 앞은 tmp[0][0], tmp[0][1] = 1, 4 -for i in range(len(a)): - arr[tmp[0][1]][i] = a[i] - -for j in range(len(b)): - arr[j][tmp[0][0]] = b[j] - -# 출력 -for i in range(len(b)): - print(''.join(arr[i])) diff --git a/Python_BOJ_2021/2805.py b/Python_BOJ_2021/2805.py deleted file mode 100644 index e95745d..0000000 --- a/Python_BOJ_2021/2805.py +++ /dev/null @@ -1,27 +0,0 @@ -# 나무 자르기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -tree = list(map(int, input().split())) - -result = 0 - -def binary_search(arr, target, start, end): - while start <= end: - total = 0 - mid = (start + end) // 2 - for x in arr: - if x> mid: - total += x - mid - - if total < target: - end = mid - 1 - else: - result = mid - start = mid + 1 - - return result - - -print(binary_search(tree, m, 0, max(tree))) \ No newline at end of file diff --git a/Python_BOJ_2021/2810.py b/Python_BOJ_2021/2810.py deleted file mode 100644 index bf4a1d1..0000000 --- a/Python_BOJ_2021/2810.py +++ /dev/null @@ -1,27 +0,0 @@ -# 컵홀더 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(input().upper()) - -ans = ['*'] - -for c in arr: - if c == 'S': - ans.append(c) - ans.append('*') - - elif c == 'L': - if ans[-1] == 'L': - ans.append(c) - ans.append('*') - else: - ans.append(c) - -n_couple = ans.count('*') - -if n < n_couple: - print(n) -else: - print(n_couple) \ No newline at end of file diff --git a/Python_BOJ_2021/2812.py b/Python_BOJ_2021/2812.py deleted file mode 100644 index a7ffdaa..0000000 --- a/Python_BOJ_2021/2812.py +++ /dev/null @@ -1,27 +0,0 @@ -# 크게 만들기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, k = map(int, input().split()) -input_tmp = list(input()) -stack = [] -cnt = 0 - -for i in range(n): - while stack and cnt < k and stack[-1] < input_tmp[i]: - stack.pop() - k -= 1 - stack.append(input_tmp[i]) - -while cnt < k: - stack.pop() - k -= 1 - -for i in range(len(stack)): - print(stack[i], end='') - - -''' -6 2 -362514 -''' \ No newline at end of file diff --git a/Python_BOJ_2021/2816.py b/Python_BOJ_2021/2816.py deleted file mode 100644 index f02ffa0..0000000 --- a/Python_BOJ_2021/2816.py +++ /dev/null @@ -1,20 +0,0 @@ -# 디지털 티비 - -import sys - -n = int(sys.stdin.readline().rstrip()) - -channels = [sys.stdin.readline().rstrip() for _ in range(n)] - - -for i in range(n): - if channels[i] == 'KBS1': - idx1 = i - elif channels[i] == 'KBS2': - idx2 = i - - -if idx1> idx2: - idx2 += 1 - -print('1' * idx1 + '4' * idx1 + '1' * idx2 + '4' * (idx2-1)) \ No newline at end of file diff --git a/Python_BOJ_2021/2828.py b/Python_BOJ_2021/2828.py deleted file mode 100644 index d8ca4f6..0000000 --- a/Python_BOJ_2021/2828.py +++ /dev/null @@ -1,28 +0,0 @@ -# 사과 담기 게임 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -j = int(input()) -apples = [int(input()) for _ in range(j)] - -basket_size = m - 1 -basket_left = 1 -basket_right = basket_left + basket_size -ans = 0 - -for i in apples: - if basket_left <= i <= basket_right: - continue - - if i < basket_left: - ans += abs(basket_left - i) - basket_left = i - basket_right = i + basket_size - - elif i> basket_right: - ans += abs(i - basket_right) - basket_left = i - basket_size - basket_right = i - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2839.py b/Python_BOJ_2021/2839.py deleted file mode 100644 index 853f136..0000000 --- a/Python_BOJ_2021/2839.py +++ /dev/null @@ -1,15 +0,0 @@ -# 설탕 배달 - -n = int(input()) -ans = 0 - -while 1: - if n % 5 == 0: - ans = ans + (n//5) - print(ans) - break - n = n - 3 - ans += 1 - if n < 0: - print(-1) - break \ No newline at end of file diff --git a/Python_BOJ_2021/2841.py b/Python_BOJ_2021/2841.py deleted file mode 100644 index e3d8e6f..0000000 --- a/Python_BOJ_2021/2841.py +++ /dev/null @@ -1,32 +0,0 @@ -# 외계인의 기타 연주 -import sys -input = lambda :sys.stdin.readline().rstrip() - -line = [[] for _ in range(7)] # 1~6번줄의 음계를 저장할 스택 -n, p = map(int, input().split()) -cnt = 0 - -for _ in range(n): - string, pret = map(int, input().split()) - - if len(line[string]) == 0: # 줄의 음계가 비어있다면 - line[string].append(pret) # 프렛 값을 푸시하고 cnt++ - cnt += 1 - - else: # 줄에 음계가 있다면 - if line[string][-1] < pret: #peek값과 프렛을 비교하여 들어갈 프렛 값이 크면 - line[string].append(pret) # 그 값을 push후 cnt++ - cnt += 1 - elif line[string][-1]> pret: #만약 peek값보다 작다면 - while line[string]: #일단 와일로 돌려서 pop을 해줘야한다 - if line[string][-1] < pret or line[string][-1] == pret: break - #언제까지? 프렛값이 peek보다 클때나 혹은 같을 때까지 - line[string].pop() - cnt += 1 - if len(line[string]) and line[string][-1] == pret: continue # 만약 값이 같으면 push하지 말고 스킵 - line[string].append(pret) # 프렛값이 peek값보다 크다면 push후 cnt++ - cnt += 1 - elif line[string][-1] == pret: # peek값과 프렛값이 같으면 스킵 - continue - -print(cnt) # 답 출력 \ No newline at end of file diff --git a/Python_BOJ_2021/2847.py b/Python_BOJ_2021/2847.py deleted file mode 100644 index adae697..0000000 --- a/Python_BOJ_2021/2847.py +++ /dev/null @@ -1,17 +0,0 @@ -# 게임을 만든 동준이 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [int(input()) for _ in range(n)] -ans = 0 - -for i in range(n-1, 0, -1): - if arr[i] <= arr[i-1]: - ans += arr[i-1] - arr[i] + 1 - arr[i-1] = arr[i] - 1 - -print(ans) - - - diff --git a/Python_BOJ_2021/2865.py b/Python_BOJ_2021/2865.py deleted file mode 100644 index 378c6ef..0000000 --- a/Python_BOJ_2021/2865.py +++ /dev/null @@ -1,13 +0,0 @@ -# 나는 위대한 슈퍼스타 K -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, m, k = map(int, input().split()) -arr = dict() - -for i in range(m): - put = input().split() - for i in range(0, len(put), 2): - arr[int(put[i])] = max(float(put[i+1]), arr.get(int(put[i]), 0)) - -print("%.1f" %sum(e for e in sorted(list(arr.values()), reverse=True)[0:k])) \ No newline at end of file diff --git a/Python_BOJ_2021/2868.py b/Python_BOJ_2021/2868.py deleted file mode 100644 index e6875e8..0000000 --- a/Python_BOJ_2021/2868.py +++ /dev/null @@ -1,10 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -r, b = map(int, input().split()) - -for i in range(3, 2000): - for j in range(3, i + 1): - tmp = (i * 2) + (j - 2) * 2 - if r == tmp and b == (i * j) - tmp: - print(i, j) \ No newline at end of file diff --git a/Python_BOJ_2021/2869.py b/Python_BOJ_2021/2869.py deleted file mode 100644 index c3edb66..0000000 --- a/Python_BOJ_2021/2869.py +++ /dev/null @@ -1,48 +0,0 @@ -# 달팽이는 올라가고 싶다 -''' -IDEA -day 1 2m - 1m : 1m -day 2 (1m+2m) - 1m : 2m -day 3 (2m+2m) - 1m : 3m -day 4 (3m+2m) - 1m : 5m end - -Recursive - -''' - - - -A, B, V = map(int, input().split()) - -height = 0 - -calc = (V-B)/(A-B) - -if V == 0: - print('0') -else: - if calc == int(calc): - print(int(calc)) - else: - print(int(calc)+1) - - - -''' -A, B, V = map(int, input().split()) - -height = A - B -day = 0 - -while True: - height = (height + A) - B - day += 1 - if V == height: - break -print(day) - -제한시간이 0.15초 -와일문, 부등호 비교가 있으면 안됨 -입력받은 순간 답이 나와야된다. -''' - diff --git a/Python_BOJ_2021/2872.py b/Python_BOJ_2021/2872.py deleted file mode 100644 index eed610c..0000000 --- a/Python_BOJ_2021/2872.py +++ /dev/null @@ -1,13 +0,0 @@ -# 우리집엔 도서관이 있어 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = [int(input()) for _ in range(n)] -ans = n - -for i in range(n-1, -1, -1): - if arr[i] == ans: - ans -= 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2891.py b/Python_BOJ_2021/2891.py deleted file mode 100644 index b2c301f..0000000 --- a/Python_BOJ_2021/2891.py +++ /dev/null @@ -1,29 +0,0 @@ -# 카약과 강풍 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, s, r = map(int, input().split()) - -damage_team = list(map(int, input().split())) -spare_team = list(map(int, input().split())) -team = [1 for _ in range(n+1)] - -for i in range(s): team[damage_team[i]-1] -= 1 -for j in range(r): team[spare_team[j]-1] += 1 -for k in range(n): - if team[k] == 0: - if k == 0 and team[1] == 2: - team[1] -= 1 - team[0] += 1 - elif k == n and team[k-1] == 2: - team[k-1] -= 1 - team[k] += 1 - else: - if team[k-1] == 2: - team[k-1] -= 1 - team[k] += 1 - elif team[k+1] == 2: - team[k+1] -= 1 - team[k] += 1 - -print(team.count(0)) \ No newline at end of file diff --git a/Python_BOJ_2021/2902.py b/Python_BOJ_2021/2902.py deleted file mode 100644 index 2692897..0000000 --- a/Python_BOJ_2021/2902.py +++ /dev/null @@ -1,5 +0,0 @@ -# KMP는 왜 KMP일까? -import sys -s = sys.stdin.readline().rstrip().split('-') - -for i in range(len(s)): print(s[i][0], end='') \ No newline at end of file diff --git a/Python_BOJ_2021/2908.py b/Python_BOJ_2021/2908.py deleted file mode 100644 index 13177ed..0000000 --- a/Python_BOJ_2021/2908.py +++ /dev/null @@ -1,11 +0,0 @@ -# 상수 - -a, b = input().split() - -a = a[::-1] -b = b[::-1] - -if a> b: - print(a) -else: - print(b) diff --git a/Python_BOJ_2021/2910.py b/Python_BOJ_2021/2910.py deleted file mode 100644 index 7e2f3d9..0000000 --- a/Python_BOJ_2021/2910.py +++ /dev/null @@ -1,20 +0,0 @@ -# 빈도 정렬 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, c = map(int, input().split()) -arr = list(map(int, input().split())) -cnt = {} - -for i in range(n): - if arr[i] in cnt: - cnt[arr[i]][0] += 1 - else: - cnt[arr[i]] = [1, i] -print(cnt) -res = sorted(cnt.items(), key=lambda x: (-x[1][0], x[1][1])) -ans = [] -for i in res: - for j in range(i[1][0]): - ans.append(str(i[0])) -print(' '.join(ans)) \ No newline at end of file diff --git a/Python_BOJ_2021/2935.py b/Python_BOJ_2021/2935.py deleted file mode 100644 index c5711a4..0000000 --- a/Python_BOJ_2021/2935.py +++ /dev/null @@ -1,12 +0,0 @@ -# 소음 -import sys -input = lambda : sys.stdin.readline().rstrip() - -arr = list() -for i in range(3): - arr.append(input()) - -if arr[1] == '*': - print(int(arr[0]) * int(arr[2])) -elif arr[1] == '+': - print(int(arr[0]) + int(arr[2])) diff --git a/Python_BOJ_2021/2941-2.py b/Python_BOJ_2021/2941-2.py deleted file mode 100644 index 3468d0b..0000000 --- a/Python_BOJ_2021/2941-2.py +++ /dev/null @@ -1,8 +0,0 @@ -alpha = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] - -a = input() - -for i in alpha: - a = a.replace(i, '.') -print(a) -print(len(a)) \ No newline at end of file diff --git a/Python_BOJ_2021/2941.py b/Python_BOJ_2021/2941.py deleted file mode 100644 index 74a541d..0000000 --- a/Python_BOJ_2021/2941.py +++ /dev/null @@ -1,7 +0,0 @@ -n = input() - -list_word = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] - -for i in list_word: - n = n.replace(i, '.') -print(len(n)) \ No newline at end of file diff --git a/Python_BOJ_2021/2953.py b/Python_BOJ_2021/2953.py deleted file mode 100644 index c7afbb7..0000000 --- a/Python_BOJ_2021/2953.py +++ /dev/null @@ -1,16 +0,0 @@ -# 나는 요리사다 -import sys - -arr, ans, ans_idx = [0] * 5, 0, 0 - -for i in range(5): - score = list(map(int, sys.stdin.readline().rstrip().split())) - arr[i] = sum(score) - -for i in range(5): - if ans < arr[i]: - ans = arr[i] - ans_idx = i + 1 - -print(ans_idx, end=' ') -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/2954.py b/Python_BOJ_2021/2954.py deleted file mode 100644 index a527605..0000000 --- a/Python_BOJ_2021/2954.py +++ /dev/null @@ -1,7 +0,0 @@ -# 창영이의 일기장 -s, p, i = input(), "aeiou", 0 -while i < len(s): - print(s[i], end='') - if p.find(s[i])> -1: - i += 2 - i += 1 diff --git a/Python_BOJ_2021/2966.py b/Python_BOJ_2021/2966.py deleted file mode 100644 index 76f7f76..0000000 --- a/Python_BOJ_2021/2966.py +++ /dev/null @@ -1,45 +0,0 @@ -# 찍기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -ans = input() - -sang_keun = ['A', 'B', 'C'] -chang_young = ['B', 'A', 'B', 'C'] -hyun_jin = ['C', 'C', 'A', 'A', 'B', 'B'] - -nick_name = ['Adrian', 'Bruno', 'Goran'] -answer_cnt = [0] * 3 - -for i in range(len(ans)): - if i>= len(sang_keun): - if sang_keun[i % len(sang_keun)] == ans[i]: - answer_cnt[0] += 1 - else: - if sang_keun[i] == ans[i]: - answer_cnt[0] += 1 - -for i in range(len(ans)): - if i>= len(chang_young): - if chang_young[i % len(chang_young)] == ans[i]: - answer_cnt[1] += 1 - else: - if chang_young[i] == ans[i]: - answer_cnt[1] += 1 - -for i in range(len(ans)): - if i>= len(hyun_jin): - if hyun_jin[i % len(hyun_jin)] == ans[i]: - answer_cnt[2] += 1 - else: - if hyun_jin[i] == ans[i]: - answer_cnt[2] += 1 - - -max_val = max(answer_cnt) -print(max_val) - -for i in range(3): - if max_val == answer_cnt[i]: - print(nick_name[i]) diff --git a/Python_BOJ_2021/2999.py b/Python_BOJ_2021/2999.py deleted file mode 100644 index 97cc51d..0000000 --- a/Python_BOJ_2021/2999.py +++ /dev/null @@ -1,23 +0,0 @@ -# 비밀 이메일 - -a = list(map(str,input())) -a_len = len(a) -R, C = 0, 0 - -for i in range(1, a_len + 1): - if a_len % i == 0 and i <= a_len // i: - R = max(R, i) - C = a_len // R - -arr = [['.'] * C for _ in range(R)] - -idx = 0 - -for j in range(C): - for i in range(R): - arr[i][j] = a[idx] - idx += 1 - -for i in range(R): - for j in range(C): - print(arr[i][j], end='') diff --git a/Python_BOJ_2021/2999_2.py b/Python_BOJ_2021/2999_2.py deleted file mode 100644 index 551faad..0000000 --- a/Python_BOJ_2021/2999_2.py +++ /dev/null @@ -1,24 +0,0 @@ -import sys -n = list(map(str, sys.stdin.readline().rstrip())) - -text_len = len(n) - -R, C = 0, 0 -tmp = list() - -for i in range(1, text_len + 1): - if text_len % i == 0 and i <= text_len // i: - R = max(R, i) - C = text_len // R - -arr = [['.'] * C for _ in range(R)] -idx = 0 - -for i in range(C): - for j in range(R): - arr[j][i] = n[idx] - idx += 1 - -for i in range(R): - for j in range(C): - print(''.join(arr[i][j]), end='') \ No newline at end of file diff --git a/Python_BOJ_2021/3009.py b/Python_BOJ_2021/3009.py deleted file mode 100644 index e251bcd..0000000 --- a/Python_BOJ_2021/3009.py +++ /dev/null @@ -1,22 +0,0 @@ -# 네 번째 점 - -x = [] -y = [] - -for _ in range(3): - a, b = map(int, input().split()) - x.append(a) - y.append(b) - -x.sort() -y.sort() - -if x.count(x[2]) == 1: - print(x[2], end='') -elif x.count(x[0]) == 1: - print(x[0], end='') - -if y.count(y[2]) == 1: - print("", y[2]) -elif y.count(y[0]) == 1: - print("", y[0]) \ No newline at end of file diff --git a/Python_BOJ_2021/3028.py b/Python_BOJ_2021/3028.py deleted file mode 100644 index 6c80a81..0000000 --- a/Python_BOJ_2021/3028.py +++ /dev/null @@ -1,30 +0,0 @@ -# 창영마을 -import sys -arr = [0] * 3 -arr[0] = 1 - - -def shuffle_a(arr): - arr[0], arr[1] = arr[1], arr[0] - return arr - - -def shuffle_b(arr): - arr[1], arr[2] = arr[2], arr[1] - return arr - - -def shuffle_c(arr): - arr[0], arr[2] = arr[2], arr[0] - return arr - - -s = sys.stdin.readline().rstrip() -for i in range(len(s)): - if s[i] == 'A': shuffle_a(arr) - elif s[i] == 'B': shuffle_b(arr) - else: shuffle_c(arr) - -for i in range(len(arr)): - if arr[i] == 1: - print(i + 1) \ No newline at end of file diff --git a/Python_BOJ_2021/3035.py b/Python_BOJ_2021/3035.py deleted file mode 100644 index 7fffedb..0000000 --- a/Python_BOJ_2021/3035.py +++ /dev/null @@ -1,11 +0,0 @@ -# 스캐너 -import sys -input = lambda : sys.stdin.readline().rstrip() - -r, c, zr, zc = map(int, input().split()) -arr = [input() for _ in range(r)] - -for s in arr: - s = ''.join(char * zc for char in s) - for _ in range(zr): - print(s) \ No newline at end of file diff --git a/Python_BOJ_2021/3046.py b/Python_BOJ_2021/3046.py deleted file mode 100644 index 74c0b06..0000000 --- a/Python_BOJ_2021/3046.py +++ /dev/null @@ -1,4 +0,0 @@ -# R2 - -r1, s = map(int, input().split()) -print(2 * s - r1) \ No newline at end of file diff --git a/Python_BOJ_2021/3048.py b/Python_BOJ_2021/3048.py deleted file mode 100644 index 6904635..0000000 --- a/Python_BOJ_2021/3048.py +++ /dev/null @@ -1,26 +0,0 @@ -import sys -input = lambda : sys.stdin.readline().rstrip() - -ant1, ant2 = map(int, input().split()) -ant1_list = list(str(input())) -ant2_list = list(str(input())) -T = int(input()) - -ant1_list.reverse() -ant = ant1_list + ant2_list - -for t in range(T): - swap = list() - for i in range(1, len(ant)): - if ant[i] in ant2_list: - if ant[i - 1] in ant1_list: - swap.append(i) - - for j in swap: - ant[j], ant[j - 1] = ant[j - 1], ant[j] - -ans = '' -for i in ant: - ans += i - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/3052.py b/Python_BOJ_2021/3052.py deleted file mode 100644 index 536fd2e..0000000 --- a/Python_BOJ_2021/3052.py +++ /dev/null @@ -1,11 +0,0 @@ -arr = [int(input()) for _ in range(10)] -num = [0] * 42 - -for i in range(10): - num[arr[i] % 42] += 1 - -ans = 0 -for i in num: - if i != 0: - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/3053.py b/Python_BOJ_2021/3053.py deleted file mode 100644 index 59c0790..0000000 --- a/Python_BOJ_2021/3053.py +++ /dev/null @@ -1,11 +0,0 @@ -# 택시 기하학 - -import math - -R = int(input()) - -Uclid_Circle = math.pi * R ** 2 -Taxi_Circle = 2 * R * R - -print(Uclid_Circle) -print(Taxi_Circle) diff --git a/Python_BOJ_2021/3055.py b/Python_BOJ_2021/3055.py deleted file mode 100644 index 993d92e..0000000 --- a/Python_BOJ_2021/3055.py +++ /dev/null @@ -1,57 +0,0 @@ -# 탈출 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n, m = map(int ,input().split()) -graph = [list(map(str, input())) for _ in range(n)] -visited = [[0] * m for _ in range(n)] -queue, w_queue = deque(), deque() -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def water(): - wq_len = len(w_queue) - while wq_len: - x, y = w_queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == '.': - graph[nx][ny] = '*' - w_queue.append([nx, ny]) - wq_len -= 1 - - -def bfs(x, y): - queue.append([x, y]) - visited[x][y] = 1 - while queue: - q_len = len(queue) - while q_len: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if graph[nx][ny] == '.' and not visited[nx][ny]: - visited[nx][ny] = visited[x][y] + 1 - queue.append([nx, ny]) - elif graph[nx][ny] == 'D': - print(visited[x][y]) - return - q_len -= 1 - water() - print('KAKTUS') - return - - -for i in range(n): - for j in range(m): - if graph[i][j] == 'S': - x1, y1 = i, j - graph[i][j] = '.' - elif graph[i][j] == '*': - w_queue.append([i, j]) - -water() -bfs(x1, y1) \ No newline at end of file diff --git a/Python_BOJ_2021/3061.py b/Python_BOJ_2021/3061.py deleted file mode 100644 index d460bb5..0000000 --- a/Python_BOJ_2021/3061.py +++ /dev/null @@ -1,14 +0,0 @@ -# 사다리 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - n = int(input()) - arr = list(map(int, input().split())) - cnt = 0 - - for j in range(n): - for i in range(j): - if arr[i]> arr[j]: - cnt += 1 - print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/3076.py b/Python_BOJ_2021/3076.py deleted file mode 100644 index 24acb5c..0000000 --- a/Python_BOJ_2021/3076.py +++ /dev/null @@ -1,10 +0,0 @@ -# 상근이의 체스판 - -r, c = map(int, input().split()) -a, b = map(int, input().split()) - -for i in range(r): - for _ in range(a): - for j in range(c): - print('.' * b if (i + j) % 2 else 'X' * b, end='') - print() \ No newline at end of file diff --git a/Python_BOJ_2021/3078.py b/Python_BOJ_2021/3078.py deleted file mode 100644 index 751f768..0000000 --- a/Python_BOJ_2021/3078.py +++ /dev/null @@ -1,33 +0,0 @@ -# 좋은 친구 -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, k = map(int, input().split()) -arr = list(input() for _ in range(n)) - -dp = [0] * 21 -answer = 0 - -for i in range(n): - l = len(arr[i]) - arr[i] = l - if i> k: - dp[arr[i - k - 1]] -= 1 - answer += dp[l] - dp[l] += 1 - -print(answer) - -# answer = 0 -# while arr: -# a = arr.popleft() -# length = len(a) -# if len(arr)>= k: -# for i in range(k): -# if length == len(arr[i]): -# answer += 1 -# else: -# if len(arr) == 0: break -# if len(arr.popleft()) == length: -# answer += 1 -# print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/3085.py b/Python_BOJ_2021/3085.py deleted file mode 100644 index c7ff04c..0000000 --- a/Python_BOJ_2021/3085.py +++ /dev/null @@ -1,54 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -arr = [list(map(str, input())) for _ in range(n)] -res = 0 - - -def check(arr): - cnt = 0 - - for i in range(n): - cnt_row, cnt_col = 1, 1 - for j in range(n - 1): - if arr[i][j] == arr[i][j + 1]: - cnt_row += 1 - else: - cnt = max(cnt, cnt_row) - cnt_row = 1 - - if arr[j][i] == arr[j + 1][i]: - cnt_col += 1 - else: - cnt = max(cnt, cnt_col) - cnt_col = 1 - cnt = max(cnt, cnt_col, cnt_row) - return cnt - - -for i in range(n): - for j in range(n - 1): - if arr[i][j] != arr[i][j + 1]: # row - tmp = arr[i][j] - arr[i][j] = arr[i][j + 1] - arr[i][j + 1] = tmp - - res = max(res, check(arr)) - - tmp = arr[i][j] - arr[i][j] = arr[i][j + 1] - arr[i][j + 1] = tmp - - if arr[j][i] != arr[j + 1][i]: # col - tmp = arr[j][i] - arr[j][i] = arr[j + 1][i] - arr[j + 1][i] = tmp - - res = max(res, check(arr)) - - tmp = arr[j][i] - arr[j][i] = arr[j + 1][i] - arr[j + 1][i] = tmp - -print(res) \ No newline at end of file diff --git a/Python_BOJ_2021/3184.py b/Python_BOJ_2021/3184.py deleted file mode 100644 index 6840749..0000000 --- a/Python_BOJ_2021/3184.py +++ /dev/null @@ -1,47 +0,0 @@ -# 양 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -r, c = map(int, input().split()) -graph = [list(input()) for _ in range(r)] -visited = [[0] * c for _ in range(r)] - -wolf, sheep = 0, 0 - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(x, y, animal): - global wolf, sheep - queue = deque() - queue.append((x, y)) - visited[x][y] = 1 - w, s = 0, 0 - - if animal == 'v': w += 1 - elif animal == 'o': s += 1 - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < r and 0 <= ny < c and not visited[nx][ny]: - if graph[nx][ny] != '#': - visited[nx][ny] = 1 - queue.append((nx, ny)) - - if graph[nx][ny] == 'v': w += 1 - elif graph[nx][ny] == 'o': s += 1 - - if w>= s: wolf += w - elif s> w: sheep += s - - -for i in range(r): - for j in range(c): - if graph[i][j] != '#' and not visited[i][j]: - bfs(i, j, graph[i][j]) - -print(sheep, wolf) \ No newline at end of file diff --git a/Python_BOJ_2021/3187.py b/Python_BOJ_2021/3187.py deleted file mode 100644 index feec1a5..0000000 --- a/Python_BOJ_2021/3187.py +++ /dev/null @@ -1,37 +0,0 @@ -# 양치기 꿍 -import sys -sys.setrecursionlimit(1000001) -r, c = map(int, input().split()) -graph = [list(map(str, input())) for _ in range(r)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -wolf, sheep = 0, 0 - - -def eat_dfs(x, y): - global wolf, sheep - if graph[x][y] == 'v': - wolf += 1 - elif graph[x][y] == 'k': - sheep += 1 - graph[x][y] = '#' - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < r and 0 <= ny < c: - if graph[nx][ny] != '#': - eat_dfs(nx, ny) - - -result = [0, 0] -for i in range(r): - for j in range(c): - if graph[i][j] != '#': - sheep, wolf = 0, 0 - eat_dfs(i, j) - - if sheep> wolf: - result[0] += sheep - else: - result[1] += wolf - -print(result[0], result[1]) \ No newline at end of file diff --git a/Python_BOJ_2021/3190.py b/Python_BOJ_2021/3190.py deleted file mode 100644 index 10c175f..0000000 --- a/Python_BOJ_2021/3190.py +++ /dev/null @@ -1,72 +0,0 @@ -# 뱀 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -k = int(input()) -graph = [[0] * n for _ in range(n)] -for _ in range(k): - a, b = map(int, input().split()) - graph[a-1][b-1] = 1 - -l = int(input()) -times = {} -for i in range(l): - x, c = input().split() - times[int(x)] = c - - -dx, dy = [0, 1, 0, -1], [-1, 0, 1, 0] # 상 우 하 좌 CW로 방향 설정 - - -def change(d, c): # 상 우 하 좌로 돌아가야됨 - if c == 'L': # CCW : -1>> 상 좌 하 우 상 - d = (d - 1) % 4 - else: # CW : +1>> 상 우 하 좌 상 - d = (d + 1) % 4 - return d - - -def bfs(): - direction = 1 - time = 1 - x, y = 0, 0 - - visited = deque() # 방문 위치 - visited.append([x, y]) - graph[x][y] = 2 - - while True: - x, y = x + dx[direction], y + dy[direction] - - if 0 <= x < n and 0 <= y < n and graph[x][y] != 2: - if graph[x][y] == 0: # 사과가 없는 경우 - tmp_x, tmp_y = visited.popleft() - graph[tmp_x][tmp_y] = 0 # 뱀 꼬리 제거 - - graph[x][y] = 2 - visited.append([x, y]) - - if time in times.keys(): - direction = change(direction, times[time]) - time += 1 - - else: - return time - - -print(bfs()) - - -''' -6 -3 -3 4 -2 5 -5 3 -3 -3 D -15 L -17 D -''' \ No newline at end of file diff --git a/Python_BOJ_2021/3449.py b/Python_BOJ_2021/3449.py deleted file mode 100644 index ac22beb..0000000 --- a/Python_BOJ_2021/3449.py +++ /dev/null @@ -1,13 +0,0 @@ -# 해밍 거리 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - a, b = input(), input() - ans = 0 - - for i in range(len(a)): - if a[i] != b[i]: - ans += 1 - - print(f'Hamming distance is {ans}.') \ No newline at end of file diff --git a/Python_BOJ_2021/3613.py b/Python_BOJ_2021/3613.py deleted file mode 100644 index 58c2ac0..0000000 --- a/Python_BOJ_2021/3613.py +++ /dev/null @@ -1,47 +0,0 @@ -# 자바 vs 씨쁠쁠 -import sys -s = sys.stdin.readline().rstrip() -upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - - -def tojava(text): - if text[0] == "_" or text[-1] == "_" or "__" in text: - return "Error!" - - ans = "" - flag = False - - for i in text: - if i in upper: - return "Error!" - - if i == "_": - flag = True - continue - - if flag == True: - ans += i.upper() - flag = False - continue - - ans += i - return ans - - -def tocpp(text): - if text[0] in upper: - return "Error!" - - ans = "" - for i in text: - if i in upper: - ans += "_" + i.lower() - else: - ans += i - return ans - - -if "_" in s: - print(tojava(s)) -else: - print(tocpp(s)) \ No newline at end of file diff --git a/Python_BOJ_2021/3986.py b/Python_BOJ_2021/3986.py deleted file mode 100644 index b533c1e..0000000 --- a/Python_BOJ_2021/3986.py +++ /dev/null @@ -1,20 +0,0 @@ -# 좋은 단어 -import sys -input = lambda :sys.stdin.readline().rstrip() -ans = 0 - -for _ in range(int(input())): - arr = [] - s = input() - for i in range(len(s)): - if len(arr) == 0: - arr.append(s[i]) - else: - if arr[-1] == s[i]: - arr.pop() - else: - arr.append(s[i]) - - if len(arr) == 0: - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/4072.py b/Python_BOJ_2021/4072.py deleted file mode 100644 index 29f5604..0000000 --- a/Python_BOJ_2021/4072.py +++ /dev/null @@ -1,13 +0,0 @@ -# Words -import sys -input = lambda : sys.stdin.readline().rstrip() - -while True: - a = list(map(str, input().split())) - if a[0] == '#': break - ans = list() - - for i in range(len(a)): - ans.append(a[i][::-1]) - print(' '.join(ans)) - diff --git a/Python_BOJ_2021/4153.py b/Python_BOJ_2021/4153.py deleted file mode 100644 index 569c199..0000000 --- a/Python_BOJ_2021/4153.py +++ /dev/null @@ -1,31 +0,0 @@ -# 직각삼각형 - -# import math -# -# while True: -# a, b, c = list(map(int, input().split())) -# -# if a == 0 and b == 0 and c == 0: -# break -# else: -# if c == math.sqrt(a**2 + b**2): -# print('right') -# elif c != math.sqrt(a**2 + b**2): -# print('wrong') - -while True: - a, b, c = map(int, input().split()) - line = [] - line.append(a) - line.append(b) - line.append(c) - if a == 0 and b == 0 and c == 0: - break - else: - maximum = max(line) - line.remove(maximum) - - if pow(maximum, 2) == pow(line[0], 2) + pow(line[1], 2): - print('right') - else: - print('wrong') diff --git a/Python_BOJ_2021/4179.py b/Python_BOJ_2021/4179.py deleted file mode 100644 index 9ae372d..0000000 --- a/Python_BOJ_2021/4179.py +++ /dev/null @@ -1,59 +0,0 @@ -# 불 ! -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -r, c = map(int, input().split()) -graph = [list(input()) for _ in range(r)] -visited = [[0 for _ in range(c)] for _ in range(r)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def fire(): - fqlen = len(fire_queue) - while fqlen: - x, y = fire_queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < r and 0 <= ny < c: - if graph[nx][ny] == '.': - graph[nx][ny] = 'F' - fire_queue.append((nx, ny)) - fqlen -= 1 - - -def bfs(x, y): - queue.append((x, y)) - visited[x][y] = 1 - while queue: - qlen = len(queue) - while qlen: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < r and 0 <= ny < c: - if not visited[nx][ny] and graph[nx][ny] == '.': - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - elif nx < 0 or ny < 0 or nx>= r or ny>= c: - print(visited[x][y]) - return - qlen -= 1 - fire() - print("IMPOSSIBLE") - return - - -queue, fire_queue = deque(), deque() -for x in range(r): - for y in range(c): - if graph[x][y] == 'J': - start_x, start_y = x, y - graph[x][y] = '.' - if graph[x][y] == 'F': - fire_queue.append((x, y)) - -fire() -bfs(start_x, start_y) \ No newline at end of file diff --git a/Python_BOJ_2021/4195.py b/Python_BOJ_2021/4195.py deleted file mode 100644 index a10daf6..0000000 --- a/Python_BOJ_2021/4195.py +++ /dev/null @@ -1,36 +0,0 @@ -# 친구 네트워크 -import sys -input = lambda :sys.stdin.readline().rstrip() - - -def find(x): - if x == parent[x]: return x - parent[x] = find(parent[x]) - return parent[x] - - -def union(x, y): - root_x = find(x) - root_y = find(y) - if root_x != root_y: - parent[root_y] = root_x - number[root_x] += number[root_y] - - -for tc in range(int(input())): - parent = dict() - number = dict() - f = int(input()) - - for _ in range(f): - x, y = input().split() - if x not in parent: - parent[x] = x - number[x] = 1 - if y not in parent: - parent[y] = y - number[y] = 1 - - union(x, y) - - print(number[find(x)]) \ No newline at end of file diff --git a/Python_BOJ_2021/4344.py b/Python_BOJ_2021/4344.py deleted file mode 100644 index 07acb22..0000000 --- a/Python_BOJ_2021/4344.py +++ /dev/null @@ -1,24 +0,0 @@ -# 평균은 넘겠지 - -C = int(input()) - -test_case = [] -for i in range(C): - test_case = list(map(int, input().split())) - sum = 0 - avg = 0 - count = 0 - # print(test_case) - - for j in range(1, len(test_case)): - sum += test_case[j] - avg = sum / test_case[0] - # print(int(avg)) - - for k in range(1, len(test_case)): - if test_case[k]> int(avg): - count = count + 1 - # print(count) - - people = count / test_case[0] * 100 - print("%.3f%%" %people) \ No newline at end of file diff --git a/Python_BOJ_2021/4458.py b/Python_BOJ_2021/4458.py deleted file mode 100644 index 04ea08d..0000000 --- a/Python_BOJ_2021/4458.py +++ /dev/null @@ -1,8 +0,0 @@ -# 첫 글자를 대문자로 -import sys -input = lambda :sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = list(map(str, input())) - s[0] = s[0].upper() - print(''.join(s)) \ No newline at end of file diff --git a/Python_BOJ_2021/4470.py b/Python_BOJ_2021/4470.py deleted file mode 100644 index 4aa276e..0000000 --- a/Python_BOJ_2021/4470.py +++ /dev/null @@ -1,7 +0,0 @@ -# 줄번호 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for i in range(int(input())): - s = input() - print(f'{i + 1}. {s}') diff --git a/Python_BOJ_2021/4485.py b/Python_BOJ_2021/4485.py deleted file mode 100644 index 33d7283..0000000 --- a/Python_BOJ_2021/4485.py +++ /dev/null @@ -1,35 +0,0 @@ -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -tc = 1 -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(): - dp = [[1000000] * N for _ in range(N)] - visited = [[0] * N for _ in range(N)] - visited[0][0] = 1 - dp[0][0] = graph[0][0] - - heap = list() - heapq.heappush(heap, [graph[0][0], 0, 0]) - - while heap: - cost, x, y = heapq.heappop(heap) - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < N and 0 <= ny < N and not visited[nx][ny]: - dp[nx][ny] = min(dp[nx][ny], dp[x][y] + graph[nx][ny]) - heapq.heappush(heap, [dp[nx][ny], nx, ny]) - visited[nx][ny] = 1 - - return dp[N - 1][N - 1] - - -while True: - N = int(input()) - if N == 0: break - graph = [list(map(int, input().split())) for _ in range(N)] - ans = bfs() - print(f'Problem {tc}: {ans}') - tc += 1 \ No newline at end of file diff --git a/Python_BOJ_2021/4606.py b/Python_BOJ_2021/4606.py deleted file mode 100644 index d86129b..0000000 --- a/Python_BOJ_2021/4606.py +++ /dev/null @@ -1,28 +0,0 @@ -# The Seven Percent Solution -import sys - -while True: - a = list(map(str, sys.stdin.readline().rstrip())) - - if a[0] == "#": - break - - for i in range(len(a)): - if a[i] == " ": - a[i] = "%20" - elif a[i] == "!": - a[i] = "%21" - elif a[i] == "$": - a[i] = "%24" - elif a[i] == "%": - a[i] = "%25" - elif a[i] == "(": - a[i] = "%28" - elif a[i] == ")": - a[i] = "%29" - elif a[i] == "*": - a[i] = "%2a" - else: - continue - - print(''.join(a)) \ No newline at end of file diff --git a/Python_BOJ_2021/4659.py b/Python_BOJ_2021/4659.py deleted file mode 100644 index 586200e..0000000 --- a/Python_BOJ_2021/4659.py +++ /dev/null @@ -1,40 +0,0 @@ -# 비밀번호 발음하기 - -moeun = ['a', 'e', 'i', 'o', 'u'] - -while True: - s = input() - flag = True - - if s == 'end': break - - tmp = '' - cnt, cons_repeat = 0, 0 - repeat = 0 - for i in s: - if i in moeun: - repeat = 0 - cnt += 1 - cons_repeat += 1 - if cons_repeat>= 3: - flag = False - if tmp == i: - if i == 'e' or i == 'o': - continue - else: - flag = False - else: - repeat += 1 - cons_repeat = 0 - if repeat>= 3: - flag = False - if tmp == i: - flag = False - tmp = i - if cnt < 1: - flag = False - - if not flag: - print(f'<' + s + '> is not acceptable.') - else: - print(f'<' + s + '> is acceptable.') \ No newline at end of file diff --git a/Python_BOJ_2021/4673.py b/Python_BOJ_2021/4673.py deleted file mode 100644 index 689732c..0000000 --- a/Python_BOJ_2021/4673.py +++ /dev/null @@ -1,17 +0,0 @@ -# 셀프 넘버 - -def d(n): - ans = n - for i in range(0, len(str(n))): - ans += int(n/10 ** i) % 10 - return ans - -number = list() - -for i in range(1, 10001): - number.append(d(i)) -# print(number) - -for i in range(1, 10001): - if i not in number: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2021/4796.py b/Python_BOJ_2021/4796.py deleted file mode 100644 index f9938e7..0000000 --- a/Python_BOJ_2021/4796.py +++ /dev/null @@ -1,14 +0,0 @@ -# 캠핑 - -import sys -input = lambda : sys.stdin.readline().rstrip() - -cnt = 0 -while True: - cnt += 1 - L, P, V = map(int, input().split()) - - if L == 0 and P == 0 and V == 0: break - - vacation = (V//P) * L + min(L, V - (V//P) * P) - print(f'Case {cnt}: {vacation}') diff --git a/Python_BOJ_2021/4796_2.py b/Python_BOJ_2021/4796_2.py deleted file mode 100644 index 656a2a4..0000000 --- a/Python_BOJ_2021/4796_2.py +++ /dev/null @@ -1,8 +0,0 @@ -import sys -tc = 1 -while True: - L, P, V = map(int, sys.stdin.readline().rstrip().split()) - if L == P == V == 0 :break - ans = L * (V // P) + min(L, V % P) - print(f'Case {tc}: {ans}') - tc += 1 \ No newline at end of file diff --git a/Python_BOJ_2021/4889.py b/Python_BOJ_2021/4889.py deleted file mode 100644 index 913e37d..0000000 --- a/Python_BOJ_2021/4889.py +++ /dev/null @@ -1,24 +0,0 @@ -# 안정적인 문자열 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for count in range(int(1e9)): - arr = list(input()) - tmp = list() - - if arr.count('-'): - break - - ans = 0 - for i in range(len(arr)): - if len(tmp) == 0 and arr[i] == '}': - ans += 1 - arr[i] = '{' - tmp.append(arr[i]) - elif len(tmp) != 0 and arr[i] == '}': - tmp.pop() - else: - tmp.append(arr[i]) - - ans = ans + len(tmp) / 2 - print(f'{count+1}. {int(ans)}') diff --git a/Python_BOJ_2021/4948.py b/Python_BOJ_2021/4948.py deleted file mode 100644 index dc124ca..0000000 --- a/Python_BOJ_2021/4948.py +++ /dev/null @@ -1,16 +0,0 @@ -# 베르트랑 공준 -import sys - -while True: - n = int(sys.stdin.readline().rstrip()) - if n == 0: break - - arr = [0] * (2 * n + 1) - ans = 0 - - for i in range(2, 2 * n + 1): - if arr[i] == 0: - if i> n: ans += 1 - for j in range(i, 2 * n + 1, i): - arr[j] = 1 - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/4949.py b/Python_BOJ_2021/4949.py deleted file mode 100644 index bbd4afa..0000000 --- a/Python_BOJ_2021/4949.py +++ /dev/null @@ -1,29 +0,0 @@ -# 균형잡힌 세상 -import sys -input = lambda : sys.stdin.readline().rstrip() - -while True: - data = input() - if data == '.': break - - arr = list() - tmp = True - - for i in data: - if i == '(' or i == '[': - arr.append(i) - elif i == ')': - if len(arr) == 0 or arr[-1] == '[': - tmp = False - break - elif arr[-1] == '(': - arr.pop() - elif i == ']': - if len(arr) == 0 or arr[-1] == '(': - tmp = False - break - elif arr[-1] == '[': - arr.pop() - - if tmp == True and len(arr) == 0: print('yes') - else: print('no') \ No newline at end of file diff --git a/Python_BOJ_2021/4963.py b/Python_BOJ_2021/4963.py deleted file mode 100644 index 0898849..0000000 --- a/Python_BOJ_2021/4963.py +++ /dev/null @@ -1,36 +0,0 @@ -# 섬의 갯수 -import sys -input = lambda : sys.stdin.readline().rstrip() -sys.setrecursionlimit(100001) - -dx, dy = [-1, -1, 0, 1, 1, 1, 0, -1], [0, 1, 1 ,1, 0, -1, -1, -1] - - -def dfs(x, y): - visited[x][y] = True - - for i in range(8): - nx, ny = x + dx[i], y + dy[i] - - if nx>= h or nx < 0 or ny>= w or ny < 0: - continue - - if not visited[nx][ny] and graph[nx][ny] == 1: - dfs(nx, ny) - - -while True: - w, h = map(int, input().split()) - if w == 0 and h == 0: break - graph = [list(map(int, input().split())) for _ in range(h)] - - visited = [[False] * w for _ in range(h)] - ans = 0 - - for i in range(h): - for j in range(w): - if not visited[i][j] and graph[i][j] == 1: - dfs(i, j) - ans += 1 - - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/4963_2.py b/Python_BOJ_2021/4963_2.py deleted file mode 100644 index 6212f12..0000000 --- a/Python_BOJ_2021/4963_2.py +++ /dev/null @@ -1,29 +0,0 @@ -# 섬의 갯수 -import sys -input =lambda :sys.stdin.readline().rstrip() -sys.setrecursionlimit(100001) -dx, dy = [-1, 1, 0, 0, -1, -1, 1, 1], [0, 0, -1, 1, 1, -1, 1, -1] - - -def dfs(x, y): - visited[x][y] = True - for i in range(8): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < h and 0 <= ny < w: - if graph[nx][ny] == 1 and not visited[nx][ny]: - dfs(nx, ny) - - -while True: - w, h = map(int, input().split()) - if w == h == 0: break - graph = [list(map(int, input().split())) for _ in range(h)] - visited = [[False] * w for _ in range(h)] - answer = 0 - for i in range(h): - for j in range(w): - if graph[i][j] == 1 and not visited[i][j]: - dfs(i, j) - answer += 1 - - print(answer) \ No newline at end of file diff --git a/Python_BOJ_2021/4999.py b/Python_BOJ_2021/4999.py deleted file mode 100644 index b9e3de7..0000000 --- a/Python_BOJ_2021/4999.py +++ /dev/null @@ -1,8 +0,0 @@ -# 아! -a = input() -b = input() - -if len(a)>= len(b): - print('go') -else: - print('no') \ No newline at end of file diff --git a/Python_BOJ_2021/5014.py b/Python_BOJ_2021/5014.py deleted file mode 100644 index 6a8e57e..0000000 --- a/Python_BOJ_2021/5014.py +++ /dev/null @@ -1,30 +0,0 @@ -# 스타트링크 -from collections import deque -import sys -input = lambda : sys.stdin.readline().rstrip() - -F, S, G, U, D = map(int, input().split()) -graph = [-1 for _ in range(F)] -graph[S-1] = 0 -visited = [False] * (F + 1) -dy = [U, -D] - - -def bfs(n): - queue = deque() - queue.append(n) - visited[n] = True - - while queue: - y = queue.popleft() - - for i in range(2): - ny = y + dy[i] - if 0 <= ny < F and not visited[ny]: - queue.append(ny) - graph[ny] = graph[y] + 1 - visited[ny] = True - - -bfs(S-1) -print(graph[G-1] if graph[G-1] != -1 else 'use the stairs') \ No newline at end of file diff --git a/Python_BOJ_2021/5052.py b/Python_BOJ_2021/5052.py deleted file mode 100644 index 2456fb2..0000000 --- a/Python_BOJ_2021/5052.py +++ /dev/null @@ -1,18 +0,0 @@ -# 전화번호 목록 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def check(): - for i in range(len(num) - 1): - if num[i] == num[i + 1][0: len(num[i])]: - print('NO') - return - print('YES') - - -for _ in range(int(input())): - n = int(input()) - num = [list(map(int, input())) for _ in range(n)] - num.sort() - check() \ No newline at end of file diff --git a/Python_BOJ_2021/5076.py b/Python_BOJ_2021/5076.py deleted file mode 100644 index 23016f5..0000000 --- a/Python_BOJ_2021/5076.py +++ /dev/null @@ -1,34 +0,0 @@ -# Web Pages -import sys - -while True: - s = sys.stdin.readline().rstrip() - if s == '#': break - stack = [] - flag = False - tmp = '' - - for i in range(len(s)): - if s[i] == '<': - flag = True - elif s[i] == '>': - flag = False - if tmp and tmp[-1] == '/': - tmp = '' - continue - elif stack and stack[-1] == tmp[1:]: - stack.pop() - else: - stack.append(tmp) - tmp = '' - - if flag and s[i] == ' ' and s[i + 1] != '/': - flag = False - - if flag and s[i] != '<': - tmp += s[i] - - if stack: - print("illegal") - else: - print("legal") \ No newline at end of file diff --git a/Python_BOJ_2021/5218.py b/Python_BOJ_2021/5218.py deleted file mode 100644 index f233e58..0000000 --- a/Python_BOJ_2021/5218.py +++ /dev/null @@ -1,16 +0,0 @@ -# 알파벳 거리 -import sys -input = lambda: sys.stdin.readline().rstrip() - -for _ in range(int(input())): - tmp = list() - s = list(map(str, input().split())) - - for i in range(len(s[0])): - a = ord(s[1][i]) - ord(s[0][i]) - if a < 0: a += 26 - tmp.append(a) - - print('Distances:', end=' ') - for i in tmp: print(i, end=' ') - print() \ No newline at end of file diff --git a/Python_BOJ_2021/5355.py b/Python_BOJ_2021/5355.py deleted file mode 100644 index 79c8d91..0000000 --- a/Python_BOJ_2021/5355.py +++ /dev/null @@ -1,16 +0,0 @@ -# 화성 수학 -import sys -input = lambda :sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = list(input().split()) - - for i in range(len(s)): - if s[i] == '@': - s[0] = float(s[0]) * 3 - elif s[i] == '%': - s[0] = float(s[0]) + 5 - elif s[i] == '#': - s[0] = float(s[0]) - 7 - ans = s[0] - print(format(round(ans, 3), ".2f")) \ No newline at end of file diff --git a/Python_BOJ_2021/5373.py b/Python_BOJ_2021/5373.py deleted file mode 100644 index 3187a9e..0000000 --- a/Python_BOJ_2021/5373.py +++ /dev/null @@ -1,130 +0,0 @@ -# 큐빙 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def cw(arr): - new_arr = [[0 for _ in range(3)] for _ in range(3)] - for i in range(3): - for j in range(3): - new_arr[i][j] = arr[2 - j][i] - return new_arr - - -def ccw(arr): - new_arr = [[0 for _ in range(3)] for _ in range(3)] - for i in range(3): - for j in range(3): - new_arr[i][j] = arr[j][2 - i] - return new_arr - - -def move(cmd): - global cube - if cmd == 'U+': - cube[4][0], cube[3][0], cube[5][0], cube[2][0] = cube[2][0], cube[4][0], cube[3][0], cube[5][0] - cube[0] = cw(cube[0]) - return - - elif cmd == 'U-': - cube[5][0], cube[3][0], cube[4][0], cube[2][0] = cube[2][0], cube[5][0], cube[3][0], cube[4][0] - cube[0] = ccw(cube[0]) - return - - elif cmd == 'D-': - cube[4][2], cube[3][2], cube[5][2], cube[2][2] = cube[2][2], cube[4][2], cube[3][2], cube[5][2] - cube[1] = ccw(cube[1]) - return - - elif cmd == 'D+': - cube[5][2], cube[3][2], cube[4][2], cube[2][2] = cube[2][2], cube[5][2], cube[3][2], cube[4][2] - cube[1] = cw(cube[1]) - return - - elif cmd == "F+": - a, b, c = cube[4][0][2], cube[4][1][2], cube[4][2][2] - cube[4][0][2], cube[4][1][2], cube[4][2][2] = cube[1][0][0], cube[1][0][1], cube[1][0][2] - cube[1][0][0], cube[1][0][1], cube[1][0][2] = cube[5][2][0], cube[5][1][0], cube[5][0][0] - cube[5][2][0], cube[5][1][0], cube[5][0][0] = cube[0][2][2], cube[0][2][1], cube[0][2][0] - cube[0][2][2], cube[0][2][1], cube[0][2][0] = a, b, c - cube[2] = cw(cube[2]) - return - - elif cmd == "F-": - a, b, c = cube[4][0][2], cube[4][1][2], cube[4][2][2] - cube[4][0][2], cube[4][1][2], cube[4][2][2] = cube[0][2][2], cube[0][2][1], cube[0][2][0] - cube[0][2][2], cube[0][2][1], cube[0][2][0] = cube[5][2][0], cube[5][1][0], cube[5][0][0] - cube[5][2][0], cube[5][1][0], cube[5][0][0] = cube[1][0][0], cube[1][0][1], cube[1][0][2] - cube[1][0][0], cube[1][0][1], cube[1][0][2] = a, b, c - cube[2] = ccw(cube[2]) - return - - elif cmd == "B+": - a, b, c = cube[4][0][0], cube[4][1][0], cube[4][2][0] - cube[4][0][0], cube[4][1][0], cube[4][2][0] = cube[0][0][2], cube[0][0][1], cube[0][0][0] - cube[0][0][2], cube[0][0][1], cube[0][0][0] = cube[5][2][2], cube[5][1][2], cube[5][0][2] - cube[5][2][2], cube[5][1][2], cube[5][0][2] = cube[1][2][0], cube[1][2][1], cube[1][2][2] - cube[1][2][0], cube[1][2][1], cube[1][2][2] = a, b, c - cube[3] = cw(cube[3]) - return - - elif cmd == "B-": - a, b, c = cube[4][0][0], cube[4][1][0], cube[4][2][0] - cube[4][0][0], cube[4][1][0], cube[4][2][0] = cube[1][2][0], cube[1][2][1], cube[1][2][2] - cube[1][2][0], cube[1][2][1], cube[1][2][2] = cube[5][2][2], cube[5][1][2], cube[5][0][2] - cube[5][2][2], cube[5][1][2], cube[5][0][2] = cube[0][0][2], cube[0][0][1], cube[0][0][0] - cube[0][0][2], cube[0][0][1], cube[0][0][0] = a, b, c - cube[3] = ccw(cube[3]) - return - - elif cmd == "L+": - a, b, c = cube[0][0][0], cube[0][1][0], cube[0][2][0] - cube[0][0][0], cube[0][1][0], cube[0][2][0] = cube[3][2][2], cube[3][1][2], cube[3][0][2] - cube[3][2][2], cube[3][1][2], cube[3][0][2] = cube[1][0][0], cube[1][1][0], cube[1][2][0] - cube[1][0][0], cube[1][1][0], cube[1][2][0] = cube[2][0][0], cube[2][1][0], cube[2][2][0] - cube[2][0][0], cube[2][1][0], cube[2][2][0] = a, b, c - cube[4] = cw(cube[4]) - return - - elif cmd == "L-": - a, b, c = cube[0][0][0], cube[0][1][0], cube[0][2][0] - cube[0][0][0], cube[0][1][0], cube[0][2][0] = cube[2][0][0], cube[2][1][0], cube[2][2][0] - cube[2][0][0], cube[2][1][0], cube[2][2][0] = cube[1][0][0], cube[1][1][0], cube[1][2][0] - cube[1][0][0], cube[1][1][0], cube[1][2][0] = cube[3][2][2], cube[3][1][2], cube[3][0][2] - cube[3][2][2], cube[3][1][2], cube[3][0][2] = a, b, c - cube[4] = ccw(cube[4]) - return - - elif cmd == "R+": - a, b, c = cube[0][0][2], cube[0][1][2], cube[0][2][2] - cube[0][0][2], cube[0][1][2], cube[0][2][2] = cube[2][0][2], cube[2][1][2], cube[2][2][2] - cube[2][0][2], cube[2][1][2], cube[2][2][2] = cube[1][0][2], cube[1][1][2], cube[1][2][2] - cube[1][0][2], cube[1][1][2], cube[1][2][2] = cube[3][2][0], cube[3][1][0], cube[3][0][0] - cube[3][2][0], cube[3][1][0], cube[3][0][0] = a, b, c - cube[5] = cw(cube[5]) - return - else: - a, b, c = cube[0][0][2], cube[0][1][2], cube[0][2][2] - cube[0][0][2], cube[0][1][2], cube[0][2][2] = cube[3][2][0], cube[3][1][0], cube[3][0][0] - cube[3][2][0], cube[3][1][0], cube[3][0][0] = cube[1][0][2], cube[1][1][2], cube[1][2][2] - cube[1][0][2], cube[1][1][2], cube[1][2][2] = cube[2][0][2], cube[2][1][2], cube[2][2][2] - cube[2][0][2], cube[2][1][2], cube[2][2][2] = a, b, c - cube[5] = ccw(cube[5]) - return - - -for _ in range(int(input())): - n = int(input()) - cmd = list(input().split()) - cube = [[['w','w','w'],['w','w','w'],['w','w','w']], - [['y','y','y'],['y','y','y'],['y','y','y']], - [['r','r','r'],['r','r','r'],['r','r','r']], - [['o','o','o'],['o','o','o'],['o','o','o']], - [['g','g','g'],['g','g','g'],['g','g','g']], - [['b','b','b'],['b','b','b'],['b','b','b']]] - for i in cmd: - move(i) - - for i in range(3): - ans = ''.join(cube[0][i]) - print(ans) diff --git a/Python_BOJ_2021/5427.py b/Python_BOJ_2021/5427.py deleted file mode 100644 index 9e7564a..0000000 --- a/Python_BOJ_2021/5427.py +++ /dev/null @@ -1,58 +0,0 @@ -# 불 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - - -def fire(): - fqlen = len(fire_queue) - while fqlen: - x, y = fire_queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < h and 0 <= ny < w: - if graph[nx][ny] == '.': - graph[nx][ny] = '*' - fire_queue.append((nx, ny)) - fqlen -= 1 - - -def bfs(i, j): - queue.append((i, j)) - visited[i][j] = 1 - while queue: - qlen = len(queue) - while qlen: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < h and 0 <= ny < w and not visited[nx][ny]: - if graph[nx][ny] == '.': - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - elif nx < 0 or ny < 0 or nx>= h or ny>= w: - print(visited[x][y]) - return - qlen -= 1 - fire() - print("IMPOSSIBLE") - return - - -for _ in range(int(input())): - w, h = map(int, input().split()) - graph = [list(input()) for _ in range(h)] - visited = [[0] * w for _ in range(h)] - - dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - queue, fire_queue = deque(), deque() - - for x in range(h): - for y in range(w): - if graph[x][y] == '@': - start_x, start_y = x, y - graph[x][y] = '.' - if graph[x][y] == '*': - fire_queue.append((x, y)) - fire() - bfs(start_x, start_y) \ No newline at end of file diff --git a/Python_BOJ_2021/5430.py b/Python_BOJ_2021/5430.py deleted file mode 100644 index a137a84..0000000 --- a/Python_BOJ_2021/5430.py +++ /dev/null @@ -1,53 +0,0 @@ -# AC -import sys -from collections import deque -input = lambda :sys.stdin.readline() - -errFlag = False -for _ in range(int(input())): - p = input() # 수행할 함수 - n = int(input()) # 배열에 숫자 갯수 - - arr = input()[1:-2].split(",") - - if arr[0] != '': - arr = deque(arr) - else: - arr = deque() - direction_Flag=True - - for i in p: - if i == "R": - if direction_Flag==True: - direction_Flag = False - elif direction_Flag==False: - direction_Flag = True - elif i == "D": - if len(arr) == 0 : - print("error") - errFlag = True - break - - if direction_Flag == True: - arr.popleft() - elif direction_Flag==False: - arr.pop() - - if p.count('R') % 2 != 0: - arr.reverse() - - if errFlag==False: - print("[",end="") - for i in range(len(arr)): - print(arr[i],end="") - if i != len(arr)-1: - print(",",end="") - print("]") - errFlag=False - - -# 1 -# DD -# 2 -# [1,2] -# error \ No newline at end of file diff --git a/Python_BOJ_2021/5524.py b/Python_BOJ_2021/5524.py deleted file mode 100644 index ba80d11..0000000 --- a/Python_BOJ_2021/5524.py +++ /dev/null @@ -1,3 +0,0 @@ -for i in range(int(input())): - s = input().lower() - print(s) \ No newline at end of file diff --git a/Python_BOJ_2021/5543.py b/Python_BOJ_2021/5543.py deleted file mode 100644 index f3c1894..0000000 --- a/Python_BOJ_2021/5543.py +++ /dev/null @@ -1,14 +0,0 @@ -# 상근날드 - -hambug = [] -drink = [] - -for i in range(5): - a = int(input()) - - if i < 3: - hambug.append(a) - else: - drink.append(a) - -print(min(hambug) + min(drink) - 50) \ No newline at end of file diff --git a/Python_BOJ_2021/5545.py b/Python_BOJ_2021/5545.py deleted file mode 100644 index 87b0705..0000000 --- a/Python_BOJ_2021/5545.py +++ /dev/null @@ -1,21 +0,0 @@ -# 최고의 피자 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -cost = list(map(int, input().split())) -dow_cal = int(input()) -topping_cal = [int(input()) for _ in range(n)] - -topping_cal.sort(reverse=True) - -answer = dow_cal / cost[0] - -for i in topping_cal: - cost[0] += cost[1] - if (dow_cal + i) / cost[0]> answer: - dow_cal += i - answer = dow_cal / cost[0] - else: break - -print(int(answer)) \ No newline at end of file diff --git a/Python_BOJ_2021/5555.py b/Python_BOJ_2021/5555.py deleted file mode 100644 index 583f2ac..0000000 --- a/Python_BOJ_2021/5555.py +++ /dev/null @@ -1,17 +0,0 @@ -# 반지 -import sys -input = lambda : sys.stdin.readline().rstrip() - -ans = 0 -find = input() - -for i in range(int(input())): - s = input() - if find in s: - ans += 1 - else: - for i in range(1, len(find)): - if s[-(len(find) - i):] + s[:i] == find: - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/5567.py b/Python_BOJ_2021/5567.py deleted file mode 100644 index 779b2d9..0000000 --- a/Python_BOJ_2021/5567.py +++ /dev/null @@ -1,35 +0,0 @@ -# 결혼식 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -m = int(input()) -graph = [[0] * (n + 1) for _ in range(n + 1)] -visited = [0 for _ in range(n + 1)] - -for _ in range(m): - x, y = map(int, input().split()) - graph[x][y], graph[y][x] = 1, 1 - - -def bfs(start): - queue = deque() - queue.append(start) - - while queue: - a = queue.popleft() - for i in range(1, n + 1): - if visited[i] == 0 and graph[a][i] == 1: - queue.append(i) - visited[i] = visited[a] + 1 - - -bfs(1) - -ans = 0 -for i in range(2, n + 1): - if visited[i] < 4 and visited[i] != 0: - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/5568.py b/Python_BOJ_2021/5568.py deleted file mode 100644 index b2c28f7..0000000 --- a/Python_BOJ_2021/5568.py +++ /dev/null @@ -1,13 +0,0 @@ -# 카드 놓기 -import sys -from itertools import permutations -input = lambda :sys.stdin.readline().rstrip() - -n, k = int(input()), int(input()) -list = [input() for _ in range(n)] - -answer = set() -for i in permutations(list, k): - answer.add(''.join(i)) - -print(len(answer)) \ No newline at end of file diff --git a/Python_BOJ_2021/5585.py b/Python_BOJ_2021/5585.py deleted file mode 100644 index d1ee769..0000000 --- a/Python_BOJ_2021/5585.py +++ /dev/null @@ -1,13 +0,0 @@ -# 거스름돈 -from sys import stdin - -money = 1000 - int(stdin.readline().rstrip()) -pouch = [500, 100, 50, 10, 5, 1] - -cnt = 0 - -for i in pouch: - cnt += money // i - money %= i - -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2021/5586.py b/Python_BOJ_2021/5586.py deleted file mode 100644 index 5b83f8c..0000000 --- a/Python_BOJ_2021/5586.py +++ /dev/null @@ -1,18 +0,0 @@ -# JOI와 IOI -import sys -input = lambda: sys.stdin.readline().rstrip() - -s = list(map(str, input())) -ans = [0] * 2 - -for i in range(len(s) - 2): - if s[i] == 'J': - if s[i + 1] == 'O' and s[i + 2] == 'I': - ans[0] += 1 - - elif s[i] == 'I': - if s[i + 1] == 'O' and s[i + 2] == 'I': - ans[1] += 1 - -print(ans[0]) # 'JOI' -print(ans[1]) # 'IOI' \ No newline at end of file diff --git a/Python_BOJ_2021/5597.py b/Python_BOJ_2021/5597.py deleted file mode 100644 index f7de693..0000000 --- a/Python_BOJ_2021/5597.py +++ /dev/null @@ -1,10 +0,0 @@ -# 과제 안 내신 분..? -import sys -check = [0] * 30 - -for _ in range(28): - check[int(sys.stdin.readline().rstrip()) - 1] = 1 - -for i in range(30): - if check[i] == 0: - print(i + 1) diff --git a/Python_BOJ_2021/5598.py b/Python_BOJ_2021/5598.py deleted file mode 100644 index f315473..0000000 --- a/Python_BOJ_2021/5598.py +++ /dev/null @@ -1,9 +0,0 @@ -# 카이사르 암호 -import sys -s = list(map(str, sys.stdin.readline().rstrip())) - -for i in range(len(s)): - asciii = ord(s[i]) - ord('A') - 3 - if asciii < 0: - asciii += 26 - print(chr(asciii + ord('A')), end='') diff --git a/Python_BOJ_2021/5615.py b/Python_BOJ_2021/5615.py deleted file mode 100644 index 1ce15ce..0000000 --- a/Python_BOJ_2021/5615.py +++ /dev/null @@ -1,15 +0,0 @@ -# 아파트 임대 (실패) -import sys -input = sys.stdin.readline - -r = 0 -for _ in range(int(input())): - s = int(input()) - x, a = 1, False - while s> x and 2 * x * (x + 1) < (1 << 31): - if (s - x) % (x + x + 1) == 0: - a = True - break - x += 1 - if not a: r += 1 -print(r) \ No newline at end of file diff --git a/Python_BOJ_2021/5622.py b/Python_BOJ_2021/5622.py deleted file mode 100644 index 0c3c949..0000000 --- a/Python_BOJ_2021/5622.py +++ /dev/null @@ -1,27 +0,0 @@ -# 다이얼 - -n = input().upper() -time = 0 - -for i in range(len(n)): - if n[i] == 'A' or n[i] == 'B' or n[i] == 'C': - time += 3 - elif n[i] == 'D' or n[i] == 'E' or n[i] == 'F': - time += 4 - elif n[i] == 'G' or n[i] == 'H' or n[i] == 'I': - time += 5 - elif n[i] == 'J' or n[i] == 'K' or n[i] == 'L': - time += 6 - elif n[i] == 'M' or n[i] == 'N' or n[i] == 'O': - time += 7 - elif n[i] == 'P' or n[i] == 'Q' or n[i] == 'R' or n[i] == 'S': - time += 8 - elif n[i] == 'T' or n[i] == 'U' or n[i] == 'V': - time += 9 - elif n[i] == 'W' or n[i] == 'X' or n[i] == 'Y' or n[i] == 'Z': - time += 10 - elif n[i] =='1': - time += 2 - else: - time += 11 -print(time) \ No newline at end of file diff --git a/Python_BOJ_2021/5656.py b/Python_BOJ_2021/5656.py deleted file mode 100644 index a1ffd5a..0000000 --- a/Python_BOJ_2021/5656.py +++ /dev/null @@ -1,26 +0,0 @@ -# 비교 연산자 -i = 1 -while True: - num1, ope, num2 = input().strip().split() - - if ope == 'E': - break - - if ope == '>': - print(f'Case {i}: ' + str(int(num1)> int(num2)).lower()) - - elif ope == '>=': - print(f'Case {i}: ' + str(int(num1)>= int(num2)).lower()) - - elif ope == '<': - print(f'Case {i}: ' + str(int(num1) < int(num2)).lower()) - - elif ope == '<=': - print(f'Case {i}: ' + str(int(num1) <= int(num2)).lower()) - - elif ope == '==': - print(f'Case {i}: ' + str(int(num1) == int(num2)).lower()) - - elif ope == '!=': - print(f'Case {i}: ' + str(int(num1) != int(num2)).lower()) - i += 1 \ No newline at end of file diff --git a/Python_BOJ_2021/5704.py b/Python_BOJ_2021/5704.py deleted file mode 100644 index c0982c0..0000000 --- a/Python_BOJ_2021/5704.py +++ /dev/null @@ -1,19 +0,0 @@ -# 팬그램 -import sys - -while True: - s = sys.stdin.readline().rstrip() - if s == '*': break - - alphabet = [0] * 26 - - for i in s: - if i == ' ': continue - - if alphabet[ord(i) - ord('a')] == 1: continue - else: alphabet[ord(i) - ord('a')] += 1 - - if sum(alphabet) == 26: - print("Y") - else: - print("N") \ No newline at end of file diff --git a/Python_BOJ_2021/5789.py b/Python_BOJ_2021/5789.py deleted file mode 100644 index ba9c95a..0000000 --- a/Python_BOJ_2021/5789.py +++ /dev/null @@ -1,7 +0,0 @@ -# 한다 안한다 -for _ in range(int(input())): - a = input() - if a[(len(a)//2) - 1] == a[len(a)//2]: - print("Do-it") - else: - print("Do-it-Not") \ No newline at end of file diff --git a/Python_BOJ_2021/5972.py b/Python_BOJ_2021/5972.py deleted file mode 100644 index 69a7020..0000000 --- a/Python_BOJ_2021/5972.py +++ /dev/null @@ -1,32 +0,0 @@ -# 택배 배송 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - - -def dijikstra(start): - queue = list() - heapq.heappush(queue, (0, start)) - distance[start] = 0 - - while queue: - cost, current = heapq.heappop(queue) - if distance[current] < cost: continue - for i in graph[current]: - cost2 = cost + i[1] - if cost2 < distance[i[0]]: - distance[i[0]] = cost2 - heapq.heappush(queue, (cost2, i[0])) - - -n, m = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -distance = [INF] * (n + 1) - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append([to_, weight]) - graph[to_].append([from_, weight]) - -dijikstra(1) -print(distance[n]) \ No newline at end of file diff --git a/Python_BOJ_2021/6087.py b/Python_BOJ_2021/6087.py deleted file mode 100644 index 265bea5..0000000 --- a/Python_BOJ_2021/6087.py +++ /dev/null @@ -1,42 +0,0 @@ -# 레이저 통신 -import sys -from collections import deque -input = sys.stdin.readline - -w, h = map(int, input().split()) -graph = [list(input()) for _ in range(h)] -mirror = [[] for _ in range(h)] -C = [] - -for i in range(h): - for j in range(w): - if graph[i][j] == 'C': - C.append([i, j]) - if graph[i][j] != '*': - mirror[i].append(-1) - else: - mirror[i].append(graph[i][j]) - -dx, dy = [1, -1, 0, 0], [0, 0, 1, -1] - - -def bfs(x, y): - q = deque() - q.append([x, y]) - mirror[x][y] = 0 - while q: - x, y, = q.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - while 0 <= nx < h and 0 <= ny < w: - if mirror[nx][ny] == '*': - break - if mirror[nx][ny] == -1: - mirror[nx][ny] = mirror[x][y] + 1 - q.append([nx, ny]) - nx += dx[i] - ny += dy[i] - - -bfs(C[0][0], C[0][1]) -print(mirror[C[1][0]][C[1][1]] - 1) \ No newline at end of file diff --git a/Python_BOJ_2021/6198.py b/Python_BOJ_2021/6198.py deleted file mode 100644 index 4a38e0f..0000000 --- a/Python_BOJ_2021/6198.py +++ /dev/null @@ -1,18 +0,0 @@ -# 옥상 정원 꾸미기 -import sys -input = lambda :sys.stdin.readline().rstrip() - -bdg = list() -for _ in range(int(input())): - bdg.append(int(input())) - -stack = list() -ans = 0 - -for i in bdg: - while stack and stack[-1] <= i: - stack.pop() - stack.append(i) - ans += len(stack) - 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/6321.py b/Python_BOJ_2021/6321.py deleted file mode 100644 index f27d4da..0000000 --- a/Python_BOJ_2021/6321.py +++ /dev/null @@ -1,16 +0,0 @@ -# IBM 빼기1 -import sys -input = lambda :sys.stdin.readline().rstrip() - -for tc in range(int(input())): - s = input() - tmp = '' - for i in range(len(s)): - if s[i] == 'Z': - tmp += 'A' - else: - tmp += str(chr(int(ord(s[i])) + 1)) - print("String #", end='') - print(tc + 1) - print(tmp) - print() \ No newline at end of file diff --git a/Python_BOJ_2021/6593.py b/Python_BOJ_2021/6593.py deleted file mode 100644 index 47e71f8..0000000 --- a/Python_BOJ_2021/6593.py +++ /dev/null @@ -1,44 +0,0 @@ -# 상범 빌딩 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() -dx, dy, dz = [-1, 1, 0, 0, 0, 0], [0, 0, -1, 1, 0, 0], [0, 0, 0, 0, -1, 1] - - -def bfs(k, i, j): - queue = deque() - queue.append((k, i, j)) - visited[k][i][j] = 0 - - while queue: - z, x, y = queue.popleft() - for i in range(6): - nx, ny, nz = x + dx[i], y + dy[i], z + dz[i] - - if 0 <= nx < r and 0 <= ny < c and 0 <= nz < l: - if graph[nz][nx][ny] == 'E': - print(f'Escaped in {visited[z][x][y] + 1} minute(s).') - return - - if visited[nz][nx][ny] == -1 and graph[nz][nx][ny] == '.': - visited[nz][nx][ny] = visited[z][x][y] + 1 - queue.append((nz, nx, ny)) - print('Trapped!') - - -while True: - l, r, c = map(int, input().split()) - if l == 0 and r == 0 and c == 0: break - - graph = [[[] * c for _ in range(r)] for _ in range(l)] - visited = [[[-1] * c for _ in range(r)] for _ in range(l)] - - for i in range(l): - graph[i] = [list(input()) for _ in range(r)] - input() - - for k in range(l): - for i in range(r): - for j in range(c): - if graph[k][i][j] == 'S': - bfs(k, i, j) \ No newline at end of file diff --git a/Python_BOJ_2021/6603.py b/Python_BOJ_2021/6603.py deleted file mode 100644 index 8a47855..0000000 --- a/Python_BOJ_2021/6603.py +++ /dev/null @@ -1,23 +0,0 @@ -# 로또 -import sys - -def dfs(start, depth): - if depth == 6: - print(' '.join(map(str, visited))) - return - - for i in range(start, len(arr)): - visited[depth] = arr[i] - dfs(i+1, depth+1) - - -while True: - data = list(map(int, sys.stdin.readline().rstrip().split())) - if data[0] == 0: break - - arr = data[1:] - visited = [0] * 6 - - dfs(0, 0) - print() - diff --git a/Python_BOJ_2021/6766.py b/Python_BOJ_2021/6766.py deleted file mode 100644 index 1656362..0000000 --- a/Python_BOJ_2021/6766.py +++ /dev/null @@ -1,13 +0,0 @@ -import sys -input = lambda : sys.stdin.readline().rstrip() - -k = int(input()) -a = input().upper() - -for i in range(len(a)): - idx = ord(a[i]) - code = 3 * (i+1) + k - gazua = idx - code - if gazua < 65: - gazua += 26 - print(chr(gazua), end='') diff --git a/Python_BOJ_2021/6993.py b/Python_BOJ_2021/6993.py deleted file mode 100644 index 2b6d71b..0000000 --- a/Python_BOJ_2021/6993.py +++ /dev/null @@ -1,15 +0,0 @@ -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - arr, num = map(str, input().split()) - a = deque(arr) - tmp = list() - for i in range(int(num)): - tmp.append(a.pop()) - a.appendleft(tmp.pop()) - - print(f"Shifting {arr} by {num} positions gives us: {''.join(a)}") - - diff --git a/Python_BOJ_2021/6996.py b/Python_BOJ_2021/6996.py deleted file mode 100644 index f53bc83..0000000 --- a/Python_BOJ_2021/6996.py +++ /dev/null @@ -1,18 +0,0 @@ -# 애너그램 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - a, b = map(str, input().split()) - a_alphabet, b_alphabet = [0] * 26, [0] * 26 - - for i in range(len(a)): - a_alphabet[ord(a[i]) - 97] += 1 - - for i in range(len(b)): - b_alphabet[ord(b[i]) - 97] += 1 - - if a_alphabet == b_alphabet: - print(f'{a} & {b} are anagrams.') - else: - print(f'{a} & {b} are NOT anagrams.') \ No newline at end of file diff --git a/Python_BOJ_2021/7562.py b/Python_BOJ_2021/7562.py deleted file mode 100644 index fe67af3..0000000 --- a/Python_BOJ_2021/7562.py +++ /dev/null @@ -1,36 +0,0 @@ -# 나이트의 이동 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -dx, dy = [1, 1, -1, -1, 2, 2, -2, -2], [2, -2, 2, -2, 1, -1, 1, -1] - - -def bfs(x, y, p, q): - queue = deque() - queue.append((x, y)) - visited[x][y] = 1 - - while queue: - x, y = queue.popleft() - - if x == p and y == q: - print(visited[p][q] - 1) - break - - for i in range(8): - nx, ny = x + dx[i], y + dy[i] - - if 0 <= nx < n and 0 <= ny < n: - if visited[nx][ny] == 0: - queue.append((nx, ny)) - visited[nx][ny] = visited[x][y] + 1 - - -for _ in range(int(input())): - n = int(input()) - start_x, start_y = map(int, input().split()) - end_x, end_y = map(int, input().split()) - visited = [[0 for _ in range(n)] for _ in range(n)] - - bfs(start_x, start_y, end_x, end_y) \ No newline at end of file diff --git a/Python_BOJ_2021/7562_2.py b/Python_BOJ_2021/7562_2.py deleted file mode 100644 index 7f837cc..0000000 --- a/Python_BOJ_2021/7562_2.py +++ /dev/null @@ -1,31 +0,0 @@ -# 나이트의 이동 -import sys -from collections import deque -input = lambda :sys.stdin.readline().rstrip() -dx, dy = [2, 1, -2, -1, 2, 1, -2, -1], [1, 2, 1, 2, -1, -2, -1, -2] - -def bfs(x, y, xx, yy): - queue = deque() - queue.append((x, y)) - graph[x][y] = 1 - while queue: - x, y = queue.popleft() - - if x == xx and y == yy: - print(graph[xx][yy] - 1) - break - - for i in range(8): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < l and 0 <= ny < l: - if graph[nx][ny] == 0: - queue.append((nx, ny)) - graph[nx][ny] = graph[x][y] + 1 - - -for _ in range(int(input())): - l = int(input()) - graph = [[0 for _ in range(l)] for _ in range(l)] - start_x, start_y = map(int, input().split()) - end_x, end_y = map(int, input().split()) - bfs(start_x, start_y, end_x, end_y) \ No newline at end of file diff --git a/Python_BOJ_2021/7567.py b/Python_BOJ_2021/7567.py deleted file mode 100644 index 2fc2979..0000000 --- a/Python_BOJ_2021/7567.py +++ /dev/null @@ -1,11 +0,0 @@ -# 그릇 -import sys -s = list(map(str, sys.stdin.readline().rstrip())) - -ans = 10 -for i in range(len(s) - 1): - if s[i] == s[i + 1]: - ans += 5 - else: - ans += 10 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/7568.py b/Python_BOJ_2021/7568.py deleted file mode 100644 index 27c5bc3..0000000 --- a/Python_BOJ_2021/7568.py +++ /dev/null @@ -1,27 +0,0 @@ -# 덩치 - -T = int(input()) - -people = [] - -for _ in range(1, T+1): - w, h = map(int, input().split()) - people.append((w, h)) - - -for i in people: - rank = 1 - for j in people: - if i[0] < j[0] and i[1] < j[1]: - rank += 1 - print(rank, end=' ') - - -''' -5 -55 185 -58 183 -88 186 -60 175 -46 155 -''' \ No newline at end of file diff --git a/Python_BOJ_2021/7568_2.py b/Python_BOJ_2021/7568_2.py deleted file mode 100644 index 0dece01..0000000 --- a/Python_BOJ_2021/7568_2.py +++ /dev/null @@ -1,16 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -n = int(input()) -arr = [[0] * 2 for _ in range(n)] - -for i in range(n): - x, y = map(int, input().split()) - arr[i][0], arr[i][1] = x, y - -for i in arr: - rank = 1 - for j in arr: - if i[0] < j[0] and i[1] < j[1]: - rank += 1 - print(rank, end=' ') \ No newline at end of file diff --git a/Python_BOJ_2021/7570.py b/Python_BOJ_2021/7570.py deleted file mode 100644 index 4c9dc18..0000000 --- a/Python_BOJ_2021/7570.py +++ /dev/null @@ -1,15 +0,0 @@ -# 줄 세우기 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -arr = list(map(int, input().split())) - -dp =[0] * (int(1e6) + 1) -ans = 0 - -for i in arr: - dp[i] = dp[i - 1] + 1 - ans = max(ans, dp[i]) - -print(n - ans) \ No newline at end of file diff --git a/Python_BOJ_2021/7576.py b/Python_BOJ_2021/7576.py deleted file mode 100644 index 5ff32b0..0000000 --- a/Python_BOJ_2021/7576.py +++ /dev/null @@ -1,52 +0,0 @@ -# 토마토 -import sys -input = lambda : sys.stdin.readline() - -N, M = map(int, input().split()) - -tomato_pos = [] -graph = [] - -for i in range(M): - a = list(map(int, input().split())) - for j in range(N): - if a[j] == 1: - tomato_pos.append((i, j)) - graph.append(a) - - -def bfs(graph, queue): - cnt = 0 - while queue: - good = [] - - for v in queue: - x, y = v[0], v[1] - - if y < N-1 and graph[x][y+1] == 0: - graph[x][y+1] = 1 - good.append((x, y+1)) - - if y> 0 and graph[x][y-1] == 0: - graph[x][y-1] = 1 - good.append((x, y-1)) - - if x < M-1 and graph[x+1][y] == 0: - graph[x+1][y] = 1 - good.append((x+1, y)) - - if x> 0 and graph[x-1][y] == 0: - graph[x-1][y] = 1 - good.append((x-1, y)) - - queue = good - cnt += 1 - - for a in graph: - if a.count(0) != 0: - return -1 - - return cnt - 1 - - -print(bfs(graph, tomato_pos)) \ No newline at end of file diff --git a/Python_BOJ_2021/7576_2.py b/Python_BOJ_2021/7576_2.py deleted file mode 100644 index 072f3db..0000000 --- a/Python_BOJ_2021/7576_2.py +++ /dev/null @@ -1,44 +0,0 @@ -# 토마토 -from collections import deque -import sys -input = lambda :sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(m)] -visited = [[0 for _ in range(n)] for _ in range(m)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(): - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < m and 0 <= ny < n: - if graph[nx][ny] == 0 and not visited[nx][ny]: - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - - -queue = deque() -for i in range(m): - for j in range(n): - if graph[i][j] == 1: - queue.append((i, j)) - visited[i][j] = 1 - elif graph[i][j] == -1: - visited[i][j] = -1 -bfs() - -for i in range(m): - for j in range(n): - if visited[i][j] == 0: - print(-1) - exit(0) - -answer = -123456789 -for i in range(m): - for j in range(n): - answer = max(visited[i][j], answer) -print(answer - 1) diff --git a/Python_BOJ_2021/7600.py b/Python_BOJ_2021/7600.py deleted file mode 100644 index 609b38d..0000000 --- a/Python_BOJ_2021/7600.py +++ /dev/null @@ -1,15 +0,0 @@ -# 문자가 몇갤까 -import sys - -while True: - s = list(map(str, set(sys.stdin.readline().rstrip().lower()))) - if s == ['#']: break - s.sort() - - arr = [0] * 26 - - for i in s: - if ord(i) - ord('a')>= 0: - arr[ord(i) - ord('a')] += 1 - - print(arr.count(1)) \ No newline at end of file diff --git a/Python_BOJ_2021/7785.py b/Python_BOJ_2021/7785.py deleted file mode 100644 index 6d38625..0000000 --- a/Python_BOJ_2021/7785.py +++ /dev/null @@ -1,10 +0,0 @@ -# 회사에 있는 사람 -arr = dict() -for _ in range(int(input())): - name, action = input().split() - if action == 'enter': - arr[name] = True - else: - del arr[name] - -print("\n".join(sorted(arr.keys(), reverse=True))) \ No newline at end of file diff --git a/Python_BOJ_2021/8320.py b/Python_BOJ_2021/8320.py deleted file mode 100644 index 2b28706..0000000 --- a/Python_BOJ_2021/8320.py +++ /dev/null @@ -1,9 +0,0 @@ -# 직사각형을 만드는 방법 -import sys -n = int(sys.stdin.readline().rstrip()) -ans = 0 -for i in range(1, n+1): - for j in range(i, n+1): - if i * j <= n: - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/8320_2.py b/Python_BOJ_2021/8320_2.py deleted file mode 100644 index 4722696..0000000 --- a/Python_BOJ_2021/8320_2.py +++ /dev/null @@ -1,7 +0,0 @@ -n = int(input()) -ans = 0 -for i in range(1, n + 1): - for j in range(i, n + 1): - if i * j <= n: - ans += 1 -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/8595.py b/Python_BOJ_2021/8595.py deleted file mode 100644 index b515886..0000000 --- a/Python_BOJ_2021/8595.py +++ /dev/null @@ -1,21 +0,0 @@ -# 히든 넘버 -import sys -input = lambda : sys.stdin.readline().rstrip() - -number = '0123456789' -n = int(input()) -s = input() -tmp = '' -ans = 0 - -for i in range(n): - if s[i] in number: - tmp += s[i] - else: - tmp += ' ' - -arr = list(map(str, tmp.split(' '))) -for j in range(len(arr)): - if arr[j] != '': - ans += int(arr[j]) -print(ans) diff --git a/Python_BOJ_2021/8949.py b/Python_BOJ_2021/8949.py deleted file mode 100644 index 2de97eb..0000000 --- a/Python_BOJ_2021/8949.py +++ /dev/null @@ -1,11 +0,0 @@ -# 대충 더해 -import sys -a, b = map(int, sys.stdin.readline().rstrip().split()) -ans = list() - -while a or b: - ans.append(str(a % 10 + b % 10)) - a //= 10 - b //= 10 - -print(''.join(ans[::-1])) \ No newline at end of file diff --git a/Python_BOJ_2021/8958.py b/Python_BOJ_2021/8958.py deleted file mode 100644 index b23c9a3..0000000 --- a/Python_BOJ_2021/8958.py +++ /dev/null @@ -1,20 +0,0 @@ -# OX 퀴즈 - -n = int(input()) - -quiz = [] -for i in range(n): - quiz = list(input()) - - cnt = 0 - sum = 0 - - for i in range(len(quiz)): - if quiz[i] == 'O': - cnt += 1 - sum += cnt - elif quiz[i] == 'X': - cnt = 0 - sum += cnt - - print(sum) \ No newline at end of file diff --git a/Python_BOJ_2021/8958_2.py b/Python_BOJ_2021/8958_2.py deleted file mode 100644 index a462954..0000000 --- a/Python_BOJ_2021/8958_2.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys -input = lambda :sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = list(map(str, input())) - ans = 0 - cnt = 1 - for i in s: - if i == 'O': - ans += cnt - cnt += 1 - elif i == 'X': - cnt = 1 - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/8980.py b/Python_BOJ_2021/8980.py deleted file mode 100644 index e228cb6..0000000 --- a/Python_BOJ_2021/8980.py +++ /dev/null @@ -1,28 +0,0 @@ -# 택배 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, c = map(int, input().split()) -m = int(input()) -arr = [list(map(int, input().split())) for _ in range(m)] -arr.sort(key=lambda x:x[1]) - -truck = [0] * (n+1) -ans = 0 - -for i in range(m): - get = 0 - from_pack = arr[i][0] - to_pack = arr[i][1] - val_pack = arr[i][2] - - for j in range(from_pack, to_pack): - get = max(get, truck[j]) - - get = min(c - get, val_pack) - ans += get - - for j in range(from_pack, to_pack): - truck[j] += get - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/9009.py b/Python_BOJ_2021/9009.py deleted file mode 100644 index fd6cd89..0000000 --- a/Python_BOJ_2021/9009.py +++ /dev/null @@ -1,21 +0,0 @@ -# 피보나치 -import sys -input = lambda : sys.stdin.readline().rstrip() - -arr = [1, 2] -for i in range(2, 44): - arr.append(arr[i-2] + arr[i-1]) - -for _ in range(int(input())): - n = int(input()) - ans = list() - while n: - for j in range(44): - if arr[j] <= n: - tmp = arr[j] - n -= tmp - ans.append(tmp) - ans.sort() - - for k in range(len(ans)): - print(ans[k], end=' ') \ No newline at end of file diff --git a/Python_BOJ_2021/9012.py b/Python_BOJ_2021/9012.py deleted file mode 100644 index 0bf6c13..0000000 --- a/Python_BOJ_2021/9012.py +++ /dev/null @@ -1,27 +0,0 @@ -# 괄호 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def check(arr): - tmp = [] - - for i in range(len(arr)): - if arr[i] == '(': - tmp.append(arr[i]) - else: - if len(tmp) == 0: - print('NO') - return - else: - tmp.pop() - - if len(tmp) == 0: - print('YES') - return - else: - print('NO') - return - - -for _ in range(int(input())): check(input()) \ No newline at end of file diff --git a/Python_BOJ_2021/9020.py b/Python_BOJ_2021/9020.py deleted file mode 100644 index 68e4e97..0000000 --- a/Python_BOJ_2021/9020.py +++ /dev/null @@ -1,29 +0,0 @@ -# 골드바흐의 추측 -import sys -input = lambda : sys.stdin.readline().rstrip() - - -def prime_list(n): - data = [True] * n - m = int(n ** 0.5) - - for i in range(2, m + 1): - if data[i]: - for j in range(i + i, n, i): - data[j] = False - return data - - -def gold(primes, n): - i = 0 - while True: - if primes[n // 2 - i] and primes[n // 2 + i]: - return (n // 2 - i, n // 2 + i) - i += 1 - - -a_list = prime_list(10001) -for _ in range(int(input())): - n = int(input()) - answer = gold(a_list, n) - print(answer[0], answer[1]) \ No newline at end of file diff --git a/Python_BOJ_2021/9046.py b/Python_BOJ_2021/9046.py deleted file mode 100644 index db0303d..0000000 --- a/Python_BOJ_2021/9046.py +++ /dev/null @@ -1,19 +0,0 @@ -# 복호화 - -for _ in range(int(input())): - s = list(map(str, input())) - arr = [0 for _ in range(26)] - - for i in range(len(s)): - if s[i] == " ": continue - arr[ord(s[i]) - 97] += 1 - cnt = 0 - for i in range(26): - if max(arr) == arr[i]: - cnt += 1 - tmp = i - - if cnt == 1: - print(chr(tmp + 97)) - else: - print('?') diff --git a/Python_BOJ_2021/9047.py b/Python_BOJ_2021/9047.py deleted file mode 100644 index f71b898..0000000 --- a/Python_BOJ_2021/9047.py +++ /dev/null @@ -1,29 +0,0 @@ -# 6174 -import sys -input = lambda : sys.stdin.readline() - -for _ in range(int(input())): - arr = int(input()) - cnt = 0 - - if arr == 6174: - print(0) - else: - tmp = sorted(list(str(arr))) - while True: - max_tmp = int(''.join(tmp[::-1])) - min_tmp = int(''.join(tmp[::])) - ans = max_tmp - min_tmp - - if ans == 6174: - cnt += 1 - break - else: - tmp = sorted(list(str(ans))) - if len(tmp) < 4: - k = len(tmp) - tmp += ['0'] * (4 - k) - tmp.sort() - cnt += 1 - print(cnt) - diff --git a/Python_BOJ_2021/9086.py b/Python_BOJ_2021/9086.py deleted file mode 100644 index 23e85cc..0000000 --- a/Python_BOJ_2021/9086.py +++ /dev/null @@ -1,7 +0,0 @@ -# 문자열 -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - s = input() - print(s[0]+s[-1]) \ No newline at end of file diff --git a/Python_BOJ_2021/9095.py b/Python_BOJ_2021/9095.py deleted file mode 100644 index e1a9d93..0000000 --- a/Python_BOJ_2021/9095.py +++ /dev/null @@ -1,22 +0,0 @@ -# 1,2,3 더하기 - - -def find(n): - cnt = [0] * 100 - cnt[1] = 1 - cnt[2] = 2 - cnt[3] = 4 - - for i in range(4, n+1): - cnt[i] = cnt[i-1] + cnt[i-2] + cnt[i-3] - return cnt[n] - - -nums = [] - -for _ in range(int(input())): - n = int(input()) - nums.append(int(n)) - -for i in range(0, len(nums)): - print(find(nums[i])) \ No newline at end of file diff --git a/Python_BOJ_2021/9205.py b/Python_BOJ_2021/9205.py deleted file mode 100644 index 1c7ea7d..0000000 --- a/Python_BOJ_2021/9205.py +++ /dev/null @@ -1,44 +0,0 @@ -# 맥주 마시면서 걸어가기 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - - -def check(point1, point2): - dist = abs(point1[0] - point2[0]) + abs(point1[1] - point2[1]) - if dist <= 1000: - return True - else: - return False - - -def bfs(start): - queue = deque() - queue.append(start) - visited[start] = True - - while queue: - pos = queue.popleft() - for i in edges[pos]: - if not visited[i]: - queue.append(i) - visited[i] = True - - -for _ in range(int(input())): - n = int(input()) - graph = [list(map(int, input().split())) for _ in range(n + 2)] - edges = [[] for _ in range(n + 2)] - visited = [False for _ in range(n + 2)] - - for i in range(n + 2): - for j in range(n + 2): - if i != j: - if check(graph[i], graph[j]): - edges[i].append(j) - bfs(0) - - if visited[n + 1]: - print("happy") - else: - print("sad") \ No newline at end of file diff --git a/Python_BOJ_2021/9243.py b/Python_BOJ_2021/9243.py deleted file mode 100644 index 76a00e7..0000000 --- a/Python_BOJ_2021/9243.py +++ /dev/null @@ -1,18 +0,0 @@ -# 파일 완전 삭제 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n = int(input()) -s, d = list(map(str, input())), list(map(str, input())) - -for i in range(n): - for j in range(len(s)): - if s[j] == '1': - s[j] = '0' - elif s[j] == '0': - s[j] = '1' - -if s == d: - print("Deletion succeeded") -else: - print('Deletion failed') \ No newline at end of file diff --git a/Python_BOJ_2021/9251.py b/Python_BOJ_2021/9251.py deleted file mode 100644 index b1c9197..0000000 --- a/Python_BOJ_2021/9251.py +++ /dev/null @@ -1,20 +0,0 @@ -# LCS - Longest Common Subsequence -import sys -input = lambda : sys.stdin.readline().rstrip() - -a = ' '+input() -b = ' '+input() - -dp = [[0] * len(b) for _ in range(len(a))] -ans = 0 - -for i in range(1, len(a)): - for j in range(1, len(b)): - if a[i] == b[j]: - dp[i][j] = dp[i-1][j-1] + 1 - else: - dp[i][j] = max(dp[i][j-1], dp[i-1][j]) - - ans = max(ans, max(dp[i])) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2021/9252.py b/Python_BOJ_2021/9252.py deleted file mode 100644 index 53c9948..0000000 --- a/Python_BOJ_2021/9252.py +++ /dev/null @@ -1,25 +0,0 @@ -# LCS 2 -import sys -input = lambda : sys.stdin.readline().rstrip() - -arr = list(input()) -arr2 = list(input()) - -dp = [[0] * (len(arr2) + 1) for _ in range(len(arr) + 1)] -strdp = [[""] * (len(arr2) + 1) for _ in range(len(arr) + 1)] - -for i in range(1, len(arr) + 1): - for j in range(1, len(arr2) + 1): - if arr[i - 1] == arr2[j - 1]: - dp[i][j] = dp[i - 1][j - 1] + 1 - strdp[i][j] = strdp[i - 1][j - 1] + arr[i - 1] - else: - if dp[i - 1][j]> dp[i][j - 1]: - dp[i][j] = dp[i - 1][j] - strdp[i][j] = strdp[i - 1][j] - else: - dp[i][j] = dp[i][j - 1] - strdp[i][j] = strdp[i][j - 1] - -print(dp[len(arr)][len(arr2)]) -print(strdp[len(arr)][len(arr2)]) \ No newline at end of file diff --git a/Python_BOJ_2021/9417.py b/Python_BOJ_2021/9417.py deleted file mode 100644 index 0b6b252..0000000 --- a/Python_BOJ_2021/9417.py +++ /dev/null @@ -1,13 +0,0 @@ -# 최대 GCD -from math import gcd - -n = int(input()) -for _ in range(n): - arr = list(map(int, input().split())) - max_gcd = 1 - for i in range(len(arr) - 1): - for j in range(i + 1, len(arr)): - this_gcd = gcd(arr[i], arr[j]) - if this_gcd> max_gcd: - max_gcd = this_gcd - print(max_gcd) \ No newline at end of file diff --git a/Python_BOJ_2021/9440.py b/Python_BOJ_2021/9440.py deleted file mode 100644 index 019e234..0000000 --- a/Python_BOJ_2021/9440.py +++ /dev/null @@ -1,35 +0,0 @@ -# 숫자 더하기 -import sys - -def make_sentence(arr): - tmp, tmp2 = '', '' - for i in range(len(arr)): - if i % 2 == 0: - tmp += str(arr[i]) - else: - tmp2 += str(arr[i]) - - print(int(tmp) + int(tmp2)) - -while True: - s = list(map(int, sys.stdin.readline().rstrip().split())) - if s[0] == 0: break - arr = [] - zero_cnt = 0 - - for i in range(1, len(s)): - if s[i] == 0: zero_cnt += 1 - arr.append(s[i]) - arr.sort() - - arr2 = [] - if zero_cnt> 0: # 0을 안에 넣어줘야 함 - for i in range(zero_cnt, zero_cnt + 2): - arr2.append(arr[i]) - for i in range(zero_cnt): - arr2.append(arr[i]) - for i in range(zero_cnt + 2, len(arr)): - arr2.append(arr[i]) - make_sentence(arr2) - else: - make_sentence(arr) diff --git a/Python_BOJ_2021/9461.py b/Python_BOJ_2021/9461.py deleted file mode 100644 index a11f7f3..0000000 --- a/Python_BOJ_2021/9461.py +++ /dev/null @@ -1,19 +0,0 @@ -# 파도반 수열 - -import sys -input = lambda: sys.stdin.readline().rstrip() - -p = [0, 1, 1, 1, 2, 2, 3, 4, 5] - - -def padovan_seq(n): - for i in range(9, n+1): - ans = p[i-5] + p[i-1] - p.append(ans) - return p - - -padovan_seq(1000) -for _ in range(int(input())): - n = int(input()) - print(p[n]) \ No newline at end of file diff --git a/Python_BOJ_2021/9466.py b/Python_BOJ_2021/9466.py deleted file mode 100644 index d6a3974..0000000 --- a/Python_BOJ_2021/9466.py +++ /dev/null @@ -1,36 +0,0 @@ -# 팀 프로젝트 -import sys -sys.setrecursionlimit(100001) -input = lambda: sys.stdin.readline().rstrip() - - -def dfs(n): - global ans - visited[n] = True - loop.append(n) - num = arr[n] - - if visited[num]: - if num in loop: - ans += loop[loop.index(num):] - return - else: - dfs(num) - - -for _ in range(int(input())): - n = int(input()) - arr = [0] + list(map(int, input().split())) - visited = [True] + [False] * n - ans = list() - - for i in range(1, n + 1): - if not visited[i]: - loop = list() - dfs(i) - print(n - len(ans)) - - -''' -3 1 3 7 3 4 6 -''' \ No newline at end of file diff --git a/Python_BOJ_2021/9536.py b/Python_BOJ_2021/9536.py deleted file mode 100644 index b699300..0000000 --- a/Python_BOJ_2021/9536.py +++ /dev/null @@ -1,22 +0,0 @@ -# 여우는 어떻게 울지? -import sys -input = lambda : sys.stdin.readline().rstrip() - -for _ in range(int(input())): - animal_sounds = list(input().split()) - - sounds = list() - while True: - animal = list(input().split()) - if len(animal)> 3: - break - sounds.append(animal[2]) - - for s in sounds: - ans = list() - for i in animal_sounds: - if i != s: - ans.append(i) - animal_sounds = ans - - print(*ans) \ No newline at end of file diff --git a/Python_BOJ_2021/9742.py b/Python_BOJ_2021/9742.py deleted file mode 100644 index 19ea5bd..0000000 --- a/Python_BOJ_2021/9742.py +++ /dev/null @@ -1,19 +0,0 @@ -# 순열 -import sys -from itertools import permutations -input = lambda :sys.stdin.readline().rstrip() - -while True: - try: - s, n = input().split() - except: - break - - answer = [0] - for i in permutations(s, int(len(s))): - answer.append(''.join(i)) - - if len(answer) < int(n): - print(f'{s} {n} = No permutation') - else: - print(f'{s} {n} = {answer[int(n)]}') \ No newline at end of file diff --git a/Python_BOJ_2021/9933.py b/Python_BOJ_2021/9933.py deleted file mode 100644 index 4b77190..0000000 --- a/Python_BOJ_2021/9933.py +++ /dev/null @@ -1,28 +0,0 @@ -# 민균이의 비밀번호 -import sys -input = lambda :sys.stdin.readline().rstrip() - -arr = [] -for _ in range(int(input())): - arr.append(input()) - - -def pelin(cha): - res = '' - for i in range(len(cha)-1, -1, -1): - res += cha[i] - return res - - -tmp = [] -for i in range(len(arr)): - tmp.append(pelin(arr[i])) - -ans = '' -for i in range(len(arr)): - for j in range(i, len(tmp)): - if tmp[j] == arr[i]: - ans = tmp[j] - -print(len(ans), end=' ') -print(ans[(len(ans) -1) // 2]) \ No newline at end of file diff --git a/Python_BOJ_2022/1065.py b/Python_BOJ_2022/1065.py deleted file mode 100644 index b6bf9ab..0000000 --- a/Python_BOJ_2022/1065.py +++ /dev/null @@ -1,15 +0,0 @@ -# 블랙잭 -n, m = map(int, input().split()) -cards = list(map(int, input().split())) - -# n장의 카드 중 3장을 골라 m과 최대한 가까운 수를 만들기 -tmp = 0 -ans = -9990 -for i in range(len(cards)): - for j in range(i + 1, len(cards)): - for k in range(j + 1, len(cards)): - tmp = cards[i] + cards[j] + cards[k] - if tmp <= m: - ans = max(ans, tmp) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/10828.py b/Python_BOJ_2022/10828.py deleted file mode 100644 index 1769aba..0000000 --- a/Python_BOJ_2022/10828.py +++ /dev/null @@ -1,29 +0,0 @@ -# 스택 -import sys -input = lambda: sys.stdin.readlines().rstrip() - -stack = list() -for _ in range(int(input())): - cmd = input().split() - - if cmd[0] == 'push': - stack.append(int(cmd[1])) - - elif cmd[0] == 'pop': - if len(stack) == 0: - print(-1) - else: - tmp = stack.pop() - print(tmp) - elif cmd[0] == 'size': - print(len(stack)) - elif cmd[0] == 'empty': - if len(stack): - print(0) - else: - print(1) - elif cmd[0] == 'top': - if len(stack) == 0: - print(-1) - else: - print(stack[-1]) \ No newline at end of file diff --git a/Python_BOJ_2022/10845.py b/Python_BOJ_2022/10845.py deleted file mode 100644 index c79586f..0000000 --- a/Python_BOJ_2022/10845.py +++ /dev/null @@ -1,33 +0,0 @@ -# 큐 -import sys -from collections import deque -input = lambda : sys.stdin.readline().rstrip() - -queue = deque() -for _ in range(int(input())): - cmd = list(input().split()) - - if cmd[0] == 'push': - queue.append(cmd[1]) - elif cmd[0] == 'pop': - if len(queue): - print(queue.popleft()) - else: - print(-1) - elif cmd[0] == 'size': - print(len(queue)) - elif cmd[0] == 'empty': - if len(queue): - print(0) - else: - print(1) - elif cmd[0] == 'front': - if len(queue): - print(queue[0]) - else: - print(-1) - elif cmd[0] == 'back': - if len(queue): - print(queue[-1]) - else: - print(-1) diff --git a/Python_BOJ_2022/10870.py b/Python_BOJ_2022/10870.py deleted file mode 100644 index c32fc51..0000000 --- a/Python_BOJ_2022/10870.py +++ /dev/null @@ -1,13 +0,0 @@ -# 피보나치 수5 - -n = int(input()) - -def fibonacci(n): - if n == 0: - return 0 - elif n == 1: - return 1 - else: - return fibonacci(n - 1) + fibonacci(n - 2) - -print(fibonacci(n)) \ No newline at end of file diff --git a/Python_BOJ_2022/10872.py b/Python_BOJ_2022/10872.py deleted file mode 100644 index 2cca780..0000000 --- a/Python_BOJ_2022/10872.py +++ /dev/null @@ -1,12 +0,0 @@ -# 팩토리얼 -import sys -sys.setrecursionlimit(100000) -insert = int(input()) - -def factorial(i): - if i <= 1: - return 1 - else: - return i * factorial(i - 1) - -print(factorial(insert)) \ No newline at end of file diff --git a/Python_BOJ_2022/11000.py b/Python_BOJ_2022/11000.py deleted file mode 100644 index 0b92c9d..0000000 --- a/Python_BOJ_2022/11000.py +++ /dev/null @@ -1,23 +0,0 @@ -# 강의실 배정 -import heapq - -n = int(input()) -timeTable = list() -for i in range(n): - start, end = map(int, input().split()) - timeTable.append([start, end]) - -timeTable.sort() - -cnt, ans = 0, 0 -tmp = list() - -for i in range(n): - cnt += 1 - heapq.heappush(tmp, timeTable[i][1]) - while timeTable[i][0]>= tmp[0]: - cnt -= 1 - heapq.heappop(tmp) - ans = max(ans, cnt) - -print(ans) diff --git a/Python_BOJ_2022/11047.py b/Python_BOJ_2022/11047.py deleted file mode 100644 index 98ae2b7..0000000 --- a/Python_BOJ_2022/11047.py +++ /dev/null @@ -1,23 +0,0 @@ -# 동전0 -n, k = map(int, input().split()) -pouch = list() - -for _ in range(n): - pouch.append(int(input())) - - -def solution(input_val): - global pouch - new_pouch = pouch[::-1] - ans = 0 - for i in range(len(new_pouch)): - if new_pouch[i]> input_val: - continue - else: - cnt = input_val // new_pouch[i] - input_val -= new_pouch[i] * cnt - ans += cnt - print(ans) - - -solution(k) \ No newline at end of file diff --git a/Python_BOJ_2022/11179.py b/Python_BOJ_2022/11179.py deleted file mode 100644 index 88d74e9..0000000 --- a/Python_BOJ_2022/11179.py +++ /dev/null @@ -1,4 +0,0 @@ -# 2진수 뒤집기 -binary = list(map(str, format(int(input()), 'b'))) -ans = int(''.join(binary[::-1]), 2) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/11279.py b/Python_BOJ_2022/11279.py deleted file mode 100644 index 47b555e..0000000 --- a/Python_BOJ_2022/11279.py +++ /dev/null @@ -1,14 +0,0 @@ -# 최대 힙 -import heapq, sys -input = lambda : sys.stdin.readline().rstrip() - -arr = [] -for _ in range(int(input())): - num = int(input()) - if num == 0: - if len(arr): - print(heapq.heappop(arr)[1]) - else: - print(0) - else: - heapq.heappush(arr, (-num, num)) \ No newline at end of file diff --git a/Python_BOJ_2022/11286.py b/Python_BOJ_2022/11286.py deleted file mode 100644 index 4a60402..0000000 --- a/Python_BOJ_2022/11286.py +++ /dev/null @@ -1,14 +0,0 @@ -# 절대값 힙 -import heapq, sys -input = lambda: sys.stdin.readline().rstrip() - -arr = [] -for _ in range(int(input())): - a = int(input()) - if a == 0: - if not len(arr): - print(0) - else: - print(heapq.heappop(arr)[1]) - else: - heapq.heappush(arr, (abs(a), a)) \ No newline at end of file diff --git a/Python_BOJ_2022/11497.py b/Python_BOJ_2022/11497.py deleted file mode 100644 index 3ce309c..0000000 --- a/Python_BOJ_2022/11497.py +++ /dev/null @@ -1,25 +0,0 @@ -# 통나무 - -for _ in range(int(input())): - n = int(input()) - arr = list(map(int, input().split())) - arr.sort() - - front = 0 - back = n - 1 - tmp_arr = [0] * n - - for i in range(n): - if i % 2 == 0: - tmp_arr[front] = arr[i] - front += 1 - else: - tmp_arr[back] = arr[i] - back -= 1 - - ans = -999999999999 - - for i in range(n - 1): - ans = max(abs(tmp_arr[i + 1] - tmp_arr[i]), ans) - - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/11652.py b/Python_BOJ_2022/11652.py deleted file mode 100644 index db90976..0000000 --- a/Python_BOJ_2022/11652.py +++ /dev/null @@ -1,14 +0,0 @@ -# 카드 -import sys -input = lambda:sys.stdin.readline().rstrip() -dic = dict() - -for _ in range(int(input())): - n = int(input()) - if n in dic: - dic[n] += 1 - else: - dic[n] = 1 - -result = sorted(dic.items(), key= lambda item: (-item[1], item[0])) -print(result[0][0]) \ No newline at end of file diff --git a/Python_BOJ_2022/11724.py b/Python_BOJ_2022/11724.py deleted file mode 100644 index cda9c80..0000000 --- a/Python_BOJ_2022/11724.py +++ /dev/null @@ -1,24 +0,0 @@ -# 연결 요소의 개수 - -n, m = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -visit = [0] * (n + 1) - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) - -def dfs(n): - visit[n] = 1 - for i in graph[n]: - if not visit[i]: - dfs(i) - -ans = 0 -for i in range(1, n + 1): - if not visit[i]: - dfs(i) - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/1260.py b/Python_BOJ_2022/1260.py deleted file mode 100644 index aa8ebd8..0000000 --- a/Python_BOJ_2022/1260.py +++ /dev/null @@ -1,39 +0,0 @@ -# DFS와 BFS -n, m, start = map(int, input().split()) -graph = [[] for _ in range(n + 1)] - -for _ in range(m): - from_, to_ = map(int, input().split()) - graph[from_].append(to_) - graph[to_].append(from_) - - graph[from_].sort() - graph[to_].sort() - -visited = [False] * (n + 1) - -def dfs(node): - visited[node] = True - print(node, end=' ') - - for i in graph[node]: - if not visited[i]: - dfs(i) - -dfs(start) -print() -from collections import deque -visited2 = [False] * (n + 1) -def bfs(node): - visited2[node] = True - queue = deque() - queue.append(node) - while queue: - x = queue.popleft() - print(x, end=' ') - for i in graph[x]: - if not visited2[i]: - queue.append(i) - visited2[i] = True - -bfs(start) \ No newline at end of file diff --git a/Python_BOJ_2022/1269.py b/Python_BOJ_2022/1269.py deleted file mode 100644 index c3d6bb8..0000000 --- a/Python_BOJ_2022/1269.py +++ /dev/null @@ -1,10 +0,0 @@ -# 대칭 차집합 -import sys -input = lambda : sys.stdin.readline() - -n, m = map(int, input().split()) -arr_1 = set(map(int, input().split())) -arr_2 = set(map(int, input().split())) -ans = len(arr_1 ^ arr_2) - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/1388.py b/Python_BOJ_2022/1388.py deleted file mode 100644 index f73cedd..0000000 --- a/Python_BOJ_2022/1388.py +++ /dev/null @@ -1,37 +0,0 @@ -# 바닥장식 -n, m = map(int, input().split()) -graph = [list(map(str, input())) for _ in range(n)] - -# 수평을 체크 -def dfs_hori(x, y): - if 0 <= x < n and 0 <= y < m: - if graph[x][y] == "-": - graph[x][y] = "x" - dfs_hori(x, y - 1) - dfs_hori(x, y + 1) - return - else: - return - -# 수직을 체크 -def dfS_vert(x, y): - if 0 <= x < n and 0 <= y < m: - if graph[x][y] == "|": - graph[x][y] = "x" - dfS_vert(x - 1, y) - dfS_vert(x + 1, y) - return - else: - return - -cnt = 0 -for i in range(n): - for j in range(m): - if graph[i][j] == "-": - dfs_hori(i, j) - cnt += 1 - elif graph[i][j] == "|": - dfS_vert(i, j) - cnt += 1 - -print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2022/14502.py b/Python_BOJ_2022/14502.py deleted file mode 100644 index f60243a..0000000 --- a/Python_BOJ_2022/14502.py +++ /dev/null @@ -1,70 +0,0 @@ -# 연구소 -from collections import deque -import sys -sys.setrecursionlimit(100001) -input = lambda: sys.stdin.readline().rstrip() - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -tmp_graph = [[0] * m for _ in range(n)] - -# 방향 -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -# 안전지대를 카운트한다 -def safeAreaCnt(): - cnt = 0 - for i in range(n): - for j in range(m): - if tmp_graph[i][j] == 0: - cnt += 1 - - return cnt - - -# 바이러스가 퍼진다 - bfs -def spreadVirus(x, y): - queue = deque() - queue.append((x, y)) - while queue: - xx, yy = queue.popleft() - for i in range(4): - nx, ny = xx + dx[i], yy + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if tmp_graph[nx][ny] == 0: - tmp_graph[nx][ny] = 2 - queue.append((nx, ny)) - -# 벽을 친다 - 재귀 -ans = 0 -def recursive(depth): - global ans - # 벽을 3개 세웠을 때 - if depth == 3: - # 그 그래프를 임시 그래프에 복사해서 - for i in range(n): - for j in range(m): - tmp_graph[i][j] = graph[i][j] - - # 바이러스가 있는 자리에서 바이러스를 한번 퍼트려본다 - for i in range(n): - for j in range(m): - if tmp_graph[i][j] == 2: - spreadVirus(i, j) - - # 안전 지대의 갯수를 최댓값이 되도록 계속 업데이트 - ans = max(ans, safeAreaCnt()) - return - - # 빈공간에 한번 벽을 새워본다 - for i in range(n): - for j in range(m): - if graph[i][j] == 0: - graph[i][j] = 1 - depth += 1 - recursive(depth) - graph[i][j] = 0 - depth -= 1 - -recursive(0) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/14716.py b/Python_BOJ_2022/14716.py deleted file mode 100644 index 29e01d3..0000000 --- a/Python_BOJ_2022/14716.py +++ /dev/null @@ -1,29 +0,0 @@ -# 현수막 -from collections import deque - -m, n = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(m)] -visited = [[False] * n for _ in range(m)] -dx, dy = [-1, 1, 0, 0, -1, 1, -1, 1], [0, 0, -1, 1, -1, -1, 1, 1] - -def bfs(i, j): - queue = deque() - queue.append((i, j)) - while queue: - x, y = queue.popleft() - for i in range(8): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < m and 0 <= ny < n: - if not visited[nx][ny]: - if graph[nx][ny] == 1: - visited[nx][ny] = True - queue.append((nx, ny)) - -ans = 0 -for i in range(m): - for j in range(n): - if graph[i][j] == 1 and not visited[i][j]: - bfs(i, j) - ans += 1 - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/14891.py b/Python_BOJ_2022/14891.py deleted file mode 100644 index 942cc7a..0000000 --- a/Python_BOJ_2022/14891.py +++ /dev/null @@ -1,37 +0,0 @@ -# 톱니바퀴 -from collections import deque - -wheels = [deque(map(int, input())) for _ in range(4)] -print(wheels) - -def cw(num, dir): - global wheels - if num == 4: - return - if wheels[num - 1][2] != wheels[num][6]: - cw(num + 1, -dir) - wheels[num].rotate(dir) - else: - return - -def ccw(num, dir): - global wheels - if num == -1: - return - if wheels[num + 1][6] != wheels[num][2]: - ccw(num - 1, -dir) - wheels[num].rotate(dir) - else: - return - -ans = 0 -for _ in range(int(input())): - wheel, dir = map(int, input().split()) - cw(wheel, -dir) - ccw(wheel - 2, -dir) - wheels[wheel - 1].rotate(dir) - -for i in range(4): - ans += (2 ** i) * wheels[i][0] - -print(ans) diff --git a/Python_BOJ_2022/1520.py b/Python_BOJ_2022/1520.py deleted file mode 100644 index 7a541ca..0000000 --- a/Python_BOJ_2022/1520.py +++ /dev/null @@ -1,27 +0,0 @@ -# 내리막 길 -import sys -sys.setrecursionlimit(10 ** 5) - -m, n = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(m)] -visited = [[-1 for _ in range(n)] for _ in range(m)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1 ,1] - -# 이 알고리즘의 경우 TO가 난다. -# DFS + DP를 이용 - -def dfs(x, y): - if x == m - 1 and y == n - 1: - return 1 - if visited[x][y] != -1: - return visited[x][y] - visited[x][y] = 0 - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < m and 0 <= ny < n: - if graph[nx][ny] < graph[x][y]: - visited[x][y] += dfs(nx, ny) - return visited[x][y] - -print(dfs(0, 0)) \ No newline at end of file diff --git a/Python_BOJ_2022/15649.py b/Python_BOJ_2022/15649.py deleted file mode 100644 index 7ef4425..0000000 --- a/Python_BOJ_2022/15649.py +++ /dev/null @@ -1,24 +0,0 @@ -# N과 M(1) -import sys -sys.setrecursionlimit(10000001) - -n, m = map(int, input().split()) -ans = [0] * m -chk = [False] * (n + 1) - -def recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(1, n + 1): - if chk[i]: - continue - ans[depth] = i - chk[i] = True - recursive(depth + 1) - chk[i] = False - -recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2022/15650.py b/Python_BOJ_2022/15650.py deleted file mode 100644 index 537af3f..0000000 --- a/Python_BOJ_2022/15650.py +++ /dev/null @@ -1,18 +0,0 @@ -# N과 M(2) -n, m = map(int, input().split()) -ans = [0] * m - -def recursive(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(start, n + 1): - - ans[depth] = i - recursive(depth + 1, i + 1) - - -recursive(0, 1) \ No newline at end of file diff --git a/Python_BOJ_2022/15651.py b/Python_BOJ_2022/15651.py deleted file mode 100644 index 86a511d..0000000 --- a/Python_BOJ_2022/15651.py +++ /dev/null @@ -1,19 +0,0 @@ -# N과 M(3) -import sys - -n, m = map(int, sys.stdin.readline().split()) - -ans = [0] * (n + 1) - -def recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(1, n + 1): - ans[depth] = i - recursive(depth + 1) - -recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2022/15651_2.py b/Python_BOJ_2022/15651_2.py deleted file mode 100644 index a44a4eb..0000000 --- a/Python_BOJ_2022/15651_2.py +++ /dev/null @@ -1,19 +0,0 @@ -# N과 M(3) -import sys -sys.setrecursionlimit(10 ** 6) - -n, m = map(int, input().split()) -ans = [0] * m - -def recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(1, n + 1): - ans[depth] = i - recursive(depth + 1) - -recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2022/15652.py b/Python_BOJ_2022/15652.py deleted file mode 100644 index e83936d..0000000 --- a/Python_BOJ_2022/15652.py +++ /dev/null @@ -1,19 +0,0 @@ -# N과 M(4) - -n, m = map(int, input().split()) - -ans = [0] * (n + 1) - -def recursive(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(start, n + 1): - ans[depth] = i - recursive(depth + 1, i) - - -recursive(0, 1) diff --git a/Python_BOJ_2022/15652_2.py b/Python_BOJ_2022/15652_2.py deleted file mode 100644 index 49d3e2c..0000000 --- a/Python_BOJ_2022/15652_2.py +++ /dev/null @@ -1,17 +0,0 @@ -# N과 M(4) - -n, m = map(int, input().split()) -ans = [0] * m - -def recursive(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(start, n + 1): - ans[depth] = i - recursive(depth + 1, i) - -recursive(0, 1) \ No newline at end of file diff --git a/Python_BOJ_2022/15655.py b/Python_BOJ_2022/15655.py deleted file mode 100644 index f8c4524..0000000 --- a/Python_BOJ_2022/15655.py +++ /dev/null @@ -1,20 +0,0 @@ -# N과 M(6) - -n, m = map(int, input().split()) -nums = list(map(int, input().split())) -nums.sort() - -ans = [0] * m - -def recursive(depth, start): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(start, n + 1): - ans[depth] = nums[i - 1] - recursive(depth + 1, i + 1) - -recursive(0, 1) \ No newline at end of file diff --git a/Python_BOJ_2022/15663.py b/Python_BOJ_2022/15663.py deleted file mode 100644 index e58095d..0000000 --- a/Python_BOJ_2022/15663.py +++ /dev/null @@ -1,28 +0,0 @@ -# N과 M(9) - -n, m = map(int, input().split()) -nums = list(map(int, input().split())) -nums.sort() - -chk = [False] * (n + 1) -ans = [0] * m - -def recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - tmp_num = 0 - for i in range(n): - if chk[i]: - continue - elif tmp_num != nums[i]: - chk[i] = True - ans[depth] = nums[i] - tmp_num = nums[i] - recursive(depth + 1) - chk[i] = False - -recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2022/15686.py b/Python_BOJ_2022/15686.py deleted file mode 100644 index 5fb1b57..0000000 --- a/Python_BOJ_2022/15686.py +++ /dev/null @@ -1,43 +0,0 @@ -# 치킨배달 -import sys -sys.setrecursionlimit(10000001) -# (r1, c1) (r2, c2)>> |r1 - r2| + |c1 - c2| - -n, m = map(int, input().split()) # 마을 크기 n x n / 치킨집 갯수 -graph = [list(map(int, input().split())) for _ in range(n)] - -home, kfc = [], [] # 집과 kfc 좌표 저장할 리스트 -ans = 123456789 -kfc_nums = [] - -for i in range(n): - for j in range(n): - if graph[i][j] == 1: - home.append((i + 1, j + 1)) - elif graph[i][j] == 2: - kfc.append((i + 1, j + 1)) - - -def solve(kfc_num, kfc_cnt): # kfc 몇 호점인지 나타내는 숫자, kfc갯수 - global ans - # 기저조건 - if kfc_num> len(kfc): - return - if kfc_cnt == m: - tmp = 0 - for x, y in home: - min_distance = 123456789 - for i in kfc_nums: # 선택된 치킨집들 - kfc_x, kfc_y = kfc[i] - min_distance = min(min_distance, abs(x - kfc_x) + abs(y - kfc_y)) - tmp += min_distance - ans = min(ans, tmp) - return - - kfc_nums.append(kfc_num) - solve(kfc_num + 1, kfc_cnt + 1) - kfc_nums.pop() - solve(kfc_num + 1, kfc_cnt) - -solve(0, 0) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/1764.py b/Python_BOJ_2022/1764.py deleted file mode 100644 index be29321..0000000 --- a/Python_BOJ_2022/1764.py +++ /dev/null @@ -1,16 +0,0 @@ -# 듣보잡 -n, m = map(int, input().split()) # 듣, 보 - -never_hear_see = {} -ans = [] - -for i in range(n + m): - name = input() - if name in never_hear_see: - ans.append(name) - else: - never_hear_see[name] = 1 -ans.sort() -print(len(ans)) -for i in ans: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2022/1822.py b/Python_BOJ_2022/1822.py deleted file mode 100644 index 2d80d12..0000000 --- a/Python_BOJ_2022/1822.py +++ /dev/null @@ -1,15 +0,0 @@ -# 차집합 -a, b = map(int, input().split()) -list_1 = set(map(int, input().split())) -list_2 = set(map(int, input().split())) -diff = list_1 - list_2 - -if not len(diff): - print(0) -else: - print(len(diff)) - answer = list(diff) - tmp = list() - for i in sorted(answer): - tmp.append(str(i)) - print(' '.join(tmp)) \ No newline at end of file diff --git a/Python_BOJ_2022/1874.py b/Python_BOJ_2022/1874.py deleted file mode 100644 index 3ae98e6..0000000 --- a/Python_BOJ_2022/1874.py +++ /dev/null @@ -1,24 +0,0 @@ -# 스택 수열 -cnt = 1 -tmp = [] -ans = [] -flag = True - -for _ in range(int(input())): - n = int(input()) - while cnt <= n: - tmp.append(cnt) - ans.append('+') - cnt += 1 - - if tmp[-1] == n: - tmp.pop() - ans.append('-') - else: - flag = False - -if not flag: - print("NO") -else: - for i in ans: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2022/1920.py b/Python_BOJ_2022/1920.py deleted file mode 100644 index 97c19fa..0000000 --- a/Python_BOJ_2022/1920.py +++ /dev/null @@ -1,25 +0,0 @@ -# 수 찾기 -n = int(input()) -lis = list(map(int, input().split())) -lis.sort() -m = int(input()) -fin = list(map(int, input().split())) - -def binary_search(arr, target, start, end): - while start <= end: - mid = (start + end) // 2 - if arr[mid] == target: - return mid - elif arr[mid]> target: - end = mid - 1 - else: - start = mid + 1 - - return None - -for i in fin: - res = binary_search(lis, i, 0, n - 1) - if res != None: - print(1) - else: - print(0) \ No newline at end of file diff --git a/Python_BOJ_2022/1920_2.py b/Python_BOJ_2022/1920_2.py deleted file mode 100644 index f1c0118..0000000 --- a/Python_BOJ_2022/1920_2.py +++ /dev/null @@ -1,9 +0,0 @@ -# 수찾기 - -n = int(input()) -list_1 = set(map(int, input().split())) -m = int(input()) -list_2 = list(map(int, input().split())) - -for i in list_2: - print(1 if i in list_1 else 0) \ No newline at end of file diff --git a/Python_BOJ_2022/1927.py b/Python_BOJ_2022/1927.py deleted file mode 100644 index c77354a..0000000 --- a/Python_BOJ_2022/1927.py +++ /dev/null @@ -1,14 +0,0 @@ -# 최소 힙 -import heapq, sys -input = lambda : sys.stdin.readline().rstrip() - -arr = [] -for _ in range(int(input())): - num = int(input()) - if num == 0: - if len(arr) != 0: - print(heapq.heappop(arr)) - else: - print(0) - else: - heapq.heappush(arr, num) \ No newline at end of file diff --git a/Python_BOJ_2022/1927_2.py b/Python_BOJ_2022/1927_2.py deleted file mode 100644 index ec29069..0000000 --- a/Python_BOJ_2022/1927_2.py +++ /dev/null @@ -1,13 +0,0 @@ -# 최소 힙 -import heapq - -arr = list() -for _ in range(int(input())): - n = int(input()) - if n == 0: - if len(arr) != 0: - print(heapq.heappop(arr)) - else: - print(0) - else: - heapq.heappush(arr, n) \ No newline at end of file diff --git a/Python_BOJ_2022/1935.py b/Python_BOJ_2022/1935.py deleted file mode 100644 index d4fcf9b..0000000 --- a/Python_BOJ_2022/1935.py +++ /dev/null @@ -1,28 +0,0 @@ -# 후위 표기식2 -n = int(input()) -s = list(map(str, input())) -arr = [] -for _ in range(n): - arr.append(int(input())) - -op = "+-*/" -ans = [] - -for i in s: - if i in op: - tmp1 = ans.pop() - tmp2 = ans.pop() - - if i == '+': - res = tmp1 + tmp2 - elif i == '-': - res = tmp2 - tmp1 - elif i == '*': - res = tmp1 * tmp2 - else: - res = tmp2 / tmp1 - ans.append(res) - - else: - ans.append(arr[ord(i) - ord('A')]) -print("%.2f" %ans[0]) \ No newline at end of file diff --git a/Python_BOJ_2022/1977.py b/Python_BOJ_2022/1977.py deleted file mode 100644 index ba05d20..0000000 --- a/Python_BOJ_2022/1977.py +++ /dev/null @@ -1,16 +0,0 @@ -# 완전제곱수 -m = int(input()) -n = int(input()) - -lis = [] - -for i in range(m, n + 1): - sqrt = i ** (1/2) - if sqrt % 1 == 0: - lis.append(i) - -if len(lis): - print(sum(lis)) - print(min(lis)) -else: - print(-1) \ No newline at end of file diff --git a/Python_BOJ_2022/20001.py b/Python_BOJ_2022/20001.py deleted file mode 100644 index f1f267e..0000000 --- a/Python_BOJ_2022/20001.py +++ /dev/null @@ -1,21 +0,0 @@ -# 고무오리 디버깅 - -import sys -arr = [] -while True: - s = sys.stdin.readline().rstrip() - if s == "고무오리 디버깅 끝": - if len(arr) == 0: - print("고무오리야 사랑해") - break - else: - print("힝구") - break - elif s == "문제": - arr.append(1) - elif s == "고무오리": - if len(arr) == 0: - for _ in range(2): - arr.append(1) - else: - arr.pop() \ No newline at end of file diff --git a/Python_BOJ_2022/21610.py b/Python_BOJ_2022/21610.py deleted file mode 100644 index 023ff02..0000000 --- a/Python_BOJ_2022/21610.py +++ /dev/null @@ -1,57 +0,0 @@ -# 마법사 상어와 비바라기 -import sys -input = lambda: sys.stdin.readline().rstrip() -from collections import deque - -n, m = map(int, input().split()) # graph size, turn -graph = [list(map(int, input().split())) for _ in range(n)] -cmd = [list(map(int, input().split())) for _ in range(m)] # 방향, 이동거리 [[1, 3], [3, 4], [8, 1], [4, 8]] -dx, dy = [0, 0, -1, -1, -1, 0, 1, 1, 1], [0, -1, -1, 0, 1, 1, 1, 0, -1] # dx[0], dy[0]은 무시 -cloud = [(n - 1, 0), (n - 1, 1), (n - 2, 0), (n - 2, 1)] -cloud = deque(cloud) # 맨 처음 구름 위치 (무조건 4개임) - -# 구름의 방향과, 이동거리가 제시되면 그만큼 이동된 구름의 위치를 찾는다. -def move_cloud(d, dist): - global n - size = len(cloud) - for _ in range(size): - x, y = cloud.popleft() - nx, ny = (x + dx[d] * dist) % n, (y + dy[d] * dist) % n - # 왼쪽으로 이동할 경우, 위치 보정 - if 0> nx: nx += n - if 0> ny: ny += n - - cloud.append((nx, ny)) - visited[nx][ny] = True - graph[nx][ny] += 1 - - -# 구름이 있는 곳에서 대각선 1의 위치에 물이 있는지 체크하고 있으면 물 복사 버그 발동 -def water_magic(): - while cloud: - x, y = cloud.popleft() - for i in range(1, 5): # 2, 4, 6, 8 - nx, ny = x + dx[2*i], y + dy[2*i] - if 0 <= nx < n and 0 <= ny < n: - if graph[nx][ny]> 0: - graph[x][y] += 1 - - -for dir, mov in cmd: - visited = [[False] * n for _ in range(n)] - move_cloud(dir, mov) - water_magic() - - for i in range(n): - for j in range(n): - if not visited[i][j] and graph[i][j]>= 2: - cloud.append((i, j)) - graph[i][j] -= 2 - -# 답 출력 -ans = 0 -for i in range(n): - for j in range(n): - ans += graph[i][j] - -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/2164.py b/Python_BOJ_2022/2164.py deleted file mode 100644 index 34a3398..0000000 --- a/Python_BOJ_2022/2164.py +++ /dev/null @@ -1,15 +0,0 @@ -# 카드2 -from collections import deque - -n = int(input()) -list = deque() -for i in range(1, n + 1): - list.append(i) - -while True: - if len(list) == 1: - print(list.pop()) - break - list.popleft() - top = list.popleft() - list.append(top) \ No newline at end of file diff --git a/Python_BOJ_2022/2178.py b/Python_BOJ_2022/2178.py deleted file mode 100644 index ca01b8f..0000000 --- a/Python_BOJ_2022/2178.py +++ /dev/null @@ -1,23 +0,0 @@ -# 미로 탐색 -from collections import deque - -n, m = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * m for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -def bfs(): - queue = deque() - queue.append((0, 0)) - visited[0][0] = 1 - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny] and graph[nx][ny] == 1: - queue.append((nx, ny)) - visited[nx][ny] = visited[x][y] + 1 - -bfs() -print(visited[n - 1][m - 1]) \ No newline at end of file diff --git a/Python_BOJ_2022/2178_2.py b/Python_BOJ_2022/2178_2.py deleted file mode 100644 index 480a380..0000000 --- a/Python_BOJ_2022/2178_2.py +++ /dev/null @@ -1,25 +0,0 @@ -# 미로 탐색 -from collections import deque -n, m = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -visited = [[0] * m for _ in range(n)] - - -def bfs(): - queue = deque() - queue.append((0, 0)) - visited[0][0] = 1 - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny] and graph[nx][ny] == 1: - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - - -bfs() -print(visited[n - 1][m - 1]) \ No newline at end of file diff --git a/Python_BOJ_2022/2468.py b/Python_BOJ_2022/2468.py deleted file mode 100644 index 405eda5..0000000 --- a/Python_BOJ_2022/2468.py +++ /dev/null @@ -1,31 +0,0 @@ -# 안전 영역 -import sys -sys.setrecursionlimit(10 ** 6) - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -# O(n ^ 2) -def dfs(x, y, height): - visited[x][y] = True - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny] and graph[nx][ny]> height: - dfs(nx, ny, height) - -ans = -9999 -# O(n ^ 3) -for h in range(0, 101): - visited = [[False] * n for _ in range(n)] - cnt = 0 - for i in range(n): - for j in range(n): - if not visited[i][j] and graph[i][j]> h: - visited[i][j] = True - cnt += 1 - dfs(i, j, h) - ans = max(ans, cnt) -print(ans) - \ No newline at end of file diff --git a/Python_BOJ_2022/2606.py b/Python_BOJ_2022/2606.py deleted file mode 100644 index eedad52..0000000 --- a/Python_BOJ_2022/2606.py +++ /dev/null @@ -1,25 +0,0 @@ -# 바이러스 -n = int(input()) # 컴퓨터 수 -c = int(input()) # 네트워크 상에서 직접 연결된 컴퓨터 쌍의 수 -graph = [[] for _ in range(n + 1)] - -for _ in range(c): - com1, com2 = map(int, input().split()) - graph[com1].append(com2) - graph[com1].sort() - graph[com2].append(com1) - graph[com2].sort() - -ans = 0 -visited = [False] * (n + 1) - -def dfs(depth): - global ans - visited[depth] = True - for node in graph[depth]: - if not visited[node]: - dfs(node) - ans += 1 - -dfs(1) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2022/2636.py b/Python_BOJ_2022/2636.py deleted file mode 100644 index 6b2ba72..0000000 --- a/Python_BOJ_2022/2636.py +++ /dev/null @@ -1,63 +0,0 @@ -# 치즈 -from collections import deque - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] - -# 전체 치즈 갯수가 몇갠지 맨 처음 카운트 -left_cheese = 0 -for i in range(n): - for j in range(m): - if graph[i][j] == 1: - left_cheese += 1 - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -# 치즈 테두리를 너비우선탐색으로 돌며 2로 바꿔준다 -def bfs(cheese): - queue = deque() - queue.append((0, 0)) - visited[0][0] = True - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny]: - visited[nx][ny] = True - if graph[nx][ny] == 1: - graph[nx][ny] = 2 - cheese -= 1 - # print_graph() - else: - queue.append((nx, ny)) - return cheese - -cnt = 0 -tmp = left_cheese - -# def print_graph(): -# print('===================================================') -# for i in range(n): -# for j in range(m): -# print(graph[i][j], end=' ') -# print() - -# 테두리 부분 치즈를 없앤다. -def remove_cheese(): - for i in range(n): - for j in range(m): - if graph[i][j] == 2: - graph[i][j] = 0 - -# 치즈의 갯수가 존재하는 동안 계속 탐색 -while left_cheese: - visited = [[False] * m for _ in range(n)] - left_cheese = bfs(left_cheese) - if left_cheese != 0: - tmp = left_cheese - cnt += 1 - remove_cheese() - -print(cnt) -print(tmp) \ No newline at end of file diff --git a/Python_BOJ_2022/2667.py b/Python_BOJ_2022/2667.py deleted file mode 100644 index 0d1ad65..0000000 --- a/Python_BOJ_2022/2667.py +++ /dev/null @@ -1,63 +0,0 @@ -# 단지번호붙이기 -n = int(input()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * n for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -# DFS - 재귀를 이용한 풀이 -# cnt = 0 -# ans = [] - -# def recursive(x, y): -# global cnt -# visited[x][y] = 1 -# if graph[x][y] == 1: -# cnt += 1 -# for i in range(4): -# nx, ny = x + dx[i], y + dy[i] -# if 0 <= nx < n and 0 <= ny = 99: - print(-1) -else: - ans = 0 - start = 1 - end = 10 ** 9 - while start <= end: - mid = (start + end) // 2 - if get_percentage((y + mid), (x + mid))> z: - ans = mid - end = mid - 1 - else: - start = mid + 1 - print(ans) \ No newline at end of file diff --git a/Python_BOJ_2023/10811.py b/Python_BOJ_2023/10811.py deleted file mode 100644 index e64f025..0000000 --- a/Python_BOJ_2023/10811.py +++ /dev/null @@ -1,13 +0,0 @@ -n, m = map(int, input().split()) - -arr = [i for i in range(1, n + 1)] - -for _ in range(m): - i, j = map(int, input().split()) - - tmp = arr[i-1 : j] - tmp = tmp[::-1] - arr[i-1:j] = tmp - -for i in arr: - print(i, end=' ') \ No newline at end of file diff --git a/Python_BOJ_2023/10815.py b/Python_BOJ_2023/10815.py deleted file mode 100644 index 438bbeb..0000000 --- a/Python_BOJ_2023/10815.py +++ /dev/null @@ -1,28 +0,0 @@ -# 숫자 카드 - -n = int(input()) -arr1 = list(map(int, input().split())) -arr1.sort() -m = int(input()) -arr2 = list(map(int, input().split())) - -def bin_search(target): - global n, m, arr1 - start, end = 0, n - 1 - - while start <= end: - mid = (start + end) // 2 - if arr1[mid] == target: - return True - - if arr1[mid] < target: - start = mid + 1 - elif arr1[mid]> target: - end = mid - 1 - return False - -for i in range(m): - if bin_search(arr2[i]): - print(1) - else: - print(0) \ No newline at end of file diff --git a/Python_BOJ_2023/10816.py b/Python_BOJ_2023/10816.py deleted file mode 100644 index e939330..0000000 --- a/Python_BOJ_2023/10816.py +++ /dev/null @@ -1,20 +0,0 @@ -# 숫자 카드2 - -n = int(input()) -arr1 = list(map(int, input().split())) -m = int(input()) -arr2 = list(map(int, input().split())) - -answer = dict() - -for i in arr1: - if i in answer: - answer[i] += 1 - else: - answer[i] = 1 - -for i in arr2: - if i in answer: - print(answer[i], end=' ') - else: - print(0, end=' ') \ No newline at end of file diff --git a/Python_BOJ_2023/10826.py b/Python_BOJ_2023/10826.py deleted file mode 100644 index f5d442e..0000000 --- a/Python_BOJ_2023/10826.py +++ /dev/null @@ -1,12 +0,0 @@ -# 피보나치 수4 - -n = int(input()) - -dp = [0, 1] - -if n> 1: - for i in range(2, n + 1): - dp.append(dp[i - 1] + dp[i - 2]) - print(str(dp[n])) -else: - print(str(dp[n])) \ No newline at end of file diff --git a/Python_BOJ_2023/11048.py b/Python_BOJ_2023/11048.py deleted file mode 100644 index 9646ccc..0000000 --- a/Python_BOJ_2023/11048.py +++ /dev/null @@ -1,10 +0,0 @@ -# 이동하기 -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -dp = [[0] * (m + 1) for _ in range(n + 1)] - -for i in range(1, n + 1): - for j in range(1, m + 1): - dp[i][j] = max(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) + graph[i - 1][j - 1] - -print(dp[n][m]) diff --git a/Python_BOJ_2023/11052.py b/Python_BOJ_2023/11052.py deleted file mode 100644 index 0a86f92..0000000 --- a/Python_BOJ_2023/11052.py +++ /dev/null @@ -1,12 +0,0 @@ -# 카드 구매하기 - -n = int(input()) -arr = list(map(int, input().split())) - -dp = [0] * (n + 1) - -for i in range(1, n + 1): - for j in range(1, i + 1): - dp[i] = max(dp[i - j] + arr[j - 1], dp[i]) - -print(max(dp)) \ No newline at end of file diff --git a/Python_BOJ_2023/11060.py b/Python_BOJ_2023/11060.py deleted file mode 100644 index 7417f13..0000000 --- a/Python_BOJ_2023/11060.py +++ /dev/null @@ -1,27 +0,0 @@ -# 정프 점프 -from collections import deque - -n = int(input()) -if n == 1: - print(0) - exit() - -arr = list(map(int, input().split())) -visited = [0] * n - -def bfs(x): - queue = deque() - queue.append((x)) - - while queue: - x = queue.popleft() - jump = arr[x] - - for i in range(1, jump + 1): - nx = x + i - if nx < n and not visited[nx]: - queue.append((nx)) - visited[nx] = visited[x] + 1 - -bfs(0) -print(visited[-1] if visited[-1] else -1) \ No newline at end of file diff --git a/Python_BOJ_2023/11170.py b/Python_BOJ_2023/11170.py deleted file mode 100644 index 4c00aab..0000000 --- a/Python_BOJ_2023/11170.py +++ /dev/null @@ -1,13 +0,0 @@ -# 0의 개수 - -for _ in range(int(input())): - n, m = map(int, input().split()) - - cnt = 0 - for i in range(n, m + 1): - arr = list(map(str, str(i))) - - for j in range(len(arr)): - if arr[j] == '0': - cnt += 1 - print(cnt) \ No newline at end of file diff --git a/Python_BOJ_2023/11726.py b/Python_BOJ_2023/11726.py deleted file mode 100644 index 0238668..0000000 --- a/Python_BOJ_2023/11726.py +++ /dev/null @@ -1,11 +0,0 @@ -# 2xN 타일링 - -n = int(input()) - -dp = [0] * (n + 1) -dp[0], dp[1] = 1, 1 - -for i in range(2, n + 1): - dp[i] = (dp[i - 1] + dp[i - 2]) % 10007) - -print(dp[-1]) \ No newline at end of file diff --git a/Python_BOJ_2023/11727.py b/Python_BOJ_2023/11727.py deleted file mode 100644 index a65ce48..0000000 --- a/Python_BOJ_2023/11727.py +++ /dev/null @@ -1,11 +0,0 @@ -# 2xN 타일링 2 - -n = int(input()) - -dp = [0] * 1001 -dp[0], dp[1], dp[2] = 1, 3, 5 - -for i in range(3, n + 1): - dp[i] = ((dp[i - 2] * 2 + dp[i - 1]) % 10007) - -print(dp[n - 1]) \ No newline at end of file diff --git a/Python_BOJ_2023/11728.py b/Python_BOJ_2023/11728.py deleted file mode 100644 index 4f92f3c..0000000 --- a/Python_BOJ_2023/11728.py +++ /dev/null @@ -1,14 +0,0 @@ -# 배열 합치기 -a, b = map(int, input().split()) - -tmp = [list(map(int, input().split())) for _ in range(2)] - -arr = list() -for i in range(a): - arr.append(tmp[0][i]) -for j in range(b): - arr.append(tmp[1][j]) - -arr.sort() -for i in range(len(arr)): - print(arr[i], end = ' ') \ No newline at end of file diff --git a/Python_BOJ_2023/1181.py b/Python_BOJ_2023/1181.py deleted file mode 100644 index a6162bc..0000000 --- a/Python_BOJ_2023/1181.py +++ /dev/null @@ -1,11 +0,0 @@ -# 단어 정렬 - -n = int(input()) -words = list(input() for _ in range(n)) -words = sorted(words, key= lambda x: (len(x), x)) -print(words) -tmp = '' -for i in words: - if tmp != i: - print(i) - tmp = i \ No newline at end of file diff --git a/Python_BOJ_2023/1251.py b/Python_BOJ_2023/1251.py deleted file mode 100644 index eb79c6c..0000000 --- a/Python_BOJ_2023/1251.py +++ /dev/null @@ -1,18 +0,0 @@ -# 단어 나누기 - -s = list(map(str, input())) -arr = list() - -for i in range(1, len(s) - 1): - for j in range(i + 1, len(s)): - tmp = s[:i] - tmp2 = s[i:j] - tmp3 = s[j:] - # 역전 - tmp.reverse() - tmp2.reverse() - tmp3.reverse() - # 합치기 - result = tmp + tmp2 + tmp3 - arr.append(''.join(result)) -print(min(arr)) \ No newline at end of file diff --git a/Python_BOJ_2023/13414.py b/Python_BOJ_2023/13414.py deleted file mode 100644 index c2e2c6a..0000000 --- a/Python_BOJ_2023/13414.py +++ /dev/null @@ -1,18 +0,0 @@ -# 수강신청 -import sys -input = sys.stdin.readline - -k, l = map(int, input().split()) -tmp = dict() - -for i in range(l): - stu = int(input().rsplit()) - tmp[stu] = i - -tmp = sorted(tmp.items(), key=lambda x: x[1]) - -if k> len(tmp): - k = len(tmp) - -for i in range(k): - print(tmp[i][0]) \ No newline at end of file diff --git a/Python_BOJ_2023/13699.py b/Python_BOJ_2023/13699.py deleted file mode 100644 index e67669c..0000000 --- a/Python_BOJ_2023/13699.py +++ /dev/null @@ -1,16 +0,0 @@ -# 점화식 - -dp = [0] * 36 -dp[0], dp[1], dp[2], dp[3] = 1, 1, 2, 5 - -n = int(input()) - -if n> 3: - for i in range(4, 36): - for j in range(i): - dp[i] += (dp[j] * dp[i - 1 - j]) - - if j == n: - break - -print(dp[n]) \ No newline at end of file diff --git a/Python_BOJ_2023/14225.py b/Python_BOJ_2023/14225.py deleted file mode 100644 index 3aeca2b..0000000 --- a/Python_BOJ_2023/14225.py +++ /dev/null @@ -1,20 +0,0 @@ -# 부분수열의 합 - -n = int(input()) -arr = list(map(int, input().split())) - -list = [0] * 20000000 - -def dfs(depth, num): - if depth == n: - list[num] = 1 - return - dfs(depth + 1, num) - dfs(depth + 1, num + arr[depth]) - -dfs(0, 0) - -for i in range(len(list)): - if list[i] == 0: - print(i) - break \ No newline at end of file diff --git a/Python_BOJ_2023/14248.py b/Python_BOJ_2023/14248.py deleted file mode 100644 index f25c26e..0000000 --- a/Python_BOJ_2023/14248.py +++ /dev/null @@ -1,20 +0,0 @@ -# 점프 점프 -import sys -sys.setrecursionlimit(10 ** 6) - -n = int(input()) -arr = list(map(int, input().split())) -s = int(input()) - 1 -visited = [False] * n -ans = 1 - -def dfs(x): - global ans - for nx in (x + arr[x], x - arr[x]): - if 0 <= nx < n and not visited[nx]: - ans += 1 - visited[nx] = True - dfs(nx) - -dfs(s) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2023/14502.py b/Python_BOJ_2023/14502.py deleted file mode 100644 index d9267d7..0000000 --- a/Python_BOJ_2023/14502.py +++ /dev/null @@ -1,63 +0,0 @@ -# 연구소 -from collections import deque -import sys -sys.setrecursionlimit(10 ** 5) - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -copy_graph = [[0] * m for _ in range(n)] - -# step1. 벽세우기 -answer = 0 -def build_wall(depth): - global answer - if depth == 3: - for i in range(n): - for j in range(m): - copy_graph[i][j] = graph[i][j] - - for i in range(n): - for j in range(m): - if copy_graph[i][j] == 2: - virus_spread(i, j) - - answer = max(answer, count_space()) - return - - for i in range(n): - for j in range(m): - if graph[i][j] == 0: - graph[i][j] = 1 - depth += 1 - build_wall(depth) - graph[i][j] = 0 - depth -= 1 - - -# step2. 바이러스 퍼트리기 -def virus_spread(ix, iy): - virus_map = deque() - virus_map.append((ix, iy)) - - while virus_map: - x, y = virus_map.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if copy_graph[nx][ny] == 0: - copy_graph[nx][ny] = 2 - virus_map.append((nx, ny)) - -# step3. 빈 공간 세기 -def count_space(): - cnt = 0 - for i in range(n): - for j in range(m): - if copy_graph[i][j] == 0: - cnt += 1 - return cnt - -build_wall(0) -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2023/1463.py b/Python_BOJ_2023/1463.py deleted file mode 100644 index 2f3599c..0000000 --- a/Python_BOJ_2023/1463.py +++ /dev/null @@ -1,15 +0,0 @@ -# 1로 만들기 - -x = int(input()) -dp = [0] * ((10 ** 6) + 1) - -for i in range(2, x + 1): - dp[i] = dp[i - 1] + 1 - - if i % 3 == 0: - dp[i] = min(dp[i], dp[i // 3] + 1) - - if i % 2 == 0: - dp[i] = min(dp[i], dp[i // 2] + 1) - -print(dp[x]) \ No newline at end of file diff --git a/Python_BOJ_2023/14940.py b/Python_BOJ_2023/14940.py deleted file mode 100644 index c28027e..0000000 --- a/Python_BOJ_2023/14940.py +++ /dev/null @@ -1,38 +0,0 @@ -# 쉬운 최단거리 -from collections import deque - -n, m = map(int, input().split()) -graph = [list(map(int, input().split())) for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - visited[x][y] = 0 - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if visited[nx][ny] == -1: - if graph[nx][ny] == 1: - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - elif graph[nx][ny] == 0: - visited[nx][ny] = 0 - -visited = [[-1] * m for _ in range(n)] - -for i in range(n): - for j in range(m): - if graph[i][j] == 2 and visited[i][j] == -1: - bfs(i, j) - -for i in range(n): - for j in range(m): - if graph[i][j] == 0: - print(0, end=' ') - else: - print(visited[i][j], end=' ') - print() \ No newline at end of file diff --git a/Python_BOJ_2023/15624.py b/Python_BOJ_2023/15624.py deleted file mode 100644 index a19e309..0000000 --- a/Python_BOJ_2023/15624.py +++ /dev/null @@ -1,16 +0,0 @@ -# 피보나치 수 7 - -n = int(input()) - -def fibo(n): - if n == 0: - return 0 - elif n == 1: - return 1 - else: - a, b = 0, 1 - for _ in range(2, n + 1): - a, b = b % 1000000007, (a + b) % 1000000007 - return b - -print(fibo(n)) \ No newline at end of file diff --git a/Python_BOJ_2023/15649.py b/Python_BOJ_2023/15649.py deleted file mode 100644 index 3f423c7..0000000 --- a/Python_BOJ_2023/15649.py +++ /dev/null @@ -1,21 +0,0 @@ -# N과 M(1) -n, m = map(int, input().split()) -chk = [False for _ in range(n + 1)] -ans = [0 for _ in range(m)] - -def recursive(depth): - if depth == m: - for i in range(m): - print(ans[i], end=' ') - print() - return - - for i in range(1, n + 1): - if chk[i]: - continue - ans[depth] = i - chk[i] = True - recursive(depth + 1) - chk[i] = False - -recursive(0) \ No newline at end of file diff --git a/Python_BOJ_2023/16173.py b/Python_BOJ_2023/16173.py deleted file mode 100644 index 0ba1fed..0000000 --- a/Python_BOJ_2023/16173.py +++ /dev/null @@ -1,28 +0,0 @@ -# 점프왕 쩰리(Samll) -from collections import deque - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [[False] * n for _ in range(n)] -dx, dy = [1, 0], [0, 1] - -def bfs(): - queue = deque() - queue.append((0, 0)) - visited[0][0] = True - - while queue: - x, y = queue.popleft() - jump = graph[x][y] - if graph[x][y] == -1: - print("HaruHaru") - exit() - for i in range(2): - nx, ny = x + dx[i] * jump, y + dy[i] * jump - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny]: - visited[nx][ny] = True - queue.append((nx, ny)) - -bfs() -print("Hing") \ No newline at end of file diff --git a/Python_BOJ_2023/16174.py b/Python_BOJ_2023/16174.py deleted file mode 100644 index 40867a1..0000000 --- a/Python_BOJ_2023/16174.py +++ /dev/null @@ -1,23 +0,0 @@ -# 점프왕 쩰리(Large) -import sys -sys.setrecursionlimit(10 ** 6) - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [[False] * n for _ in range(n)] -dx, dy = [0, 1], [1, 0] - -def dfs(x, y): - visited[x][y] = True - jump = graph[x][y] - if graph[x][y] == -1: - print("HaruHaru") - exit() - for i in range(2): - nx, ny = x + dx[i] * jump, y + dy[i] * jump - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny]: - dfs(nx, ny) - -dfs(0, 0) -print("Hing") \ No newline at end of file diff --git a/Python_BOJ_2023/16395.py b/Python_BOJ_2023/16395.py deleted file mode 100644 index db3aa57..0000000 --- a/Python_BOJ_2023/16395.py +++ /dev/null @@ -1,19 +0,0 @@ -# 파스칼의 삼각형 - -n, k = map(int, input().split()) - -dp = list() -dp.append([1]) -dp.append([1, 1]) - -for i in range(3, n + 1): - tmp = [0] * i # [0, 0, 0] | i = 3 - for j in range(i): # j = 0, 1 ,2 | i = 3 - if j == 0: - tmp[j] = 1 - elif j == i - 1: - tmp[j] = 1 - else: - tmp[j] = dp[i - 2][j - 1] + dp[i - 2][j] - dp.append(tmp) -print(dp[n - 1][k - 1]) \ No newline at end of file diff --git a/Python_BOJ_2023/16948.py b/Python_BOJ_2023/16948.py deleted file mode 100644 index 4207e77..0000000 --- a/Python_BOJ_2023/16948.py +++ /dev/null @@ -1,27 +0,0 @@ -# 데스 나이트 -from collections import deque - -n = int(input()) -sx, sy, ex, ey = map(int, input().split()) - -graph = [[0] * n for _ in range(n)] - -dx, dy = [-2, -2, 0, 0, 2, 2], [-1, 1, -2, 2, -1, 1] - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - graph[x][y] = 1 - - while queue: - x, y = queue.popleft() - for i in range(6): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if not graph[nx][ny]: - graph[nx][ny] = graph[x][y] + 1 - queue.append((nx, ny)) - - -bfs(sx, sy) -print(graph[ex][ey] - 1) \ No newline at end of file diff --git a/Python_BOJ_2023/1747.py b/Python_BOJ_2023/1747.py deleted file mode 100644 index 81bb28b..0000000 --- a/Python_BOJ_2023/1747.py +++ /dev/null @@ -1,29 +0,0 @@ -# 소수&팰린드롬 -import math -n = int(input()) - -def chk_primarynum(num): - sqrt_num = int(math.sqrt(num)) - if num == 1: - return False - - for i in range(2, sqrt_num + 1): - if num % i == 0: - return False # 소수가 아님 - return True # 소수임 - - -def chk_pelindrome(num): - val = str(num) - reverse_val = val[::-1] - - if val == reverse_val: - return True # 팰린드롬임 - else: - return False # 팰린드롬이 아님 - -while True: - if chk_pelindrome(n) and chk_primarynum(n): - print(n) - exit() - n += 1 \ No newline at end of file diff --git a/Python_BOJ_2023/1788.py b/Python_BOJ_2023/1788.py deleted file mode 100644 index 412855b..0000000 --- a/Python_BOJ_2023/1788.py +++ /dev/null @@ -1,31 +0,0 @@ -# 피보나치 수의 확장 -N = int(input()) - -if N == 0: - print(0) - print(0) -else: - dp=[0] * (abs(N) + 1) - dp[1] = 1 - - if N < 0: - for i in range(2, abs(N) + 1): - dp[i]=(dp[i - 2] - dp[i - 1]) - if dp[i] < 0: - dp[i] %= -1000000000 - else: - dp[i] %= 1000000000 - elif N> 0: - for i in range(2, N + 1): - dp[i] = (dp[i - 1] % 1000000000 + dp[i - 2] % 1000000000) - - if N < 0: - if dp[-N] < 0: - print(-1) - print(abs(dp[-N] % -1000000000)) - else: - print(1) - print(dp[-N] % 1000000000) - elif N> 0: - print(1) - print(dp[N] % 1000000000) \ No newline at end of file diff --git a/Python_BOJ_2023/1789.py b/Python_BOJ_2023/1789.py deleted file mode 100644 index 9aebc8b..0000000 --- a/Python_BOJ_2023/1789.py +++ /dev/null @@ -1,14 +0,0 @@ -# 수들의 합 - -s = int(input()) - -sum_val = 0 -answer = 0 - -while True: - answer += 1 - sum_val += answer - if sum_val> s: - break - -print(answer - 1) diff --git a/Python_BOJ_2023/1920.py b/Python_BOJ_2023/1920.py deleted file mode 100644 index 7a0737f..0000000 --- a/Python_BOJ_2023/1920.py +++ /dev/null @@ -1,32 +0,0 @@ -# 수 찾기 - -n = int(input()) -arr1 = list(map(int, input().split())) -arr1.sort() - -m = int(input()) -arr2 = list(map(int, input().split())) - -def binary_search(num): - global arr1 - start = 0 - end = len(arr1) - 1 - - while start <= end: - mid = (start + end) // 2 - if arr1[mid] == num: - return True - - if arr1[mid] < num: - start = mid + 1 - elif arr1[mid]> num: - end = mid - 1 - - return False - - -for i in arr2: - if binary_search(i): - print(1) - else: - print(0) diff --git a/Python_BOJ_2023/20291.py b/Python_BOJ_2023/20291.py deleted file mode 100644 index 8457e84..0000000 --- a/Python_BOJ_2023/20291.py +++ /dev/null @@ -1,17 +0,0 @@ -# 파일 정리 - -n = int(input()) -tmp = list() -for _ in range(n): - name, val = map(str, input().split(".")) - tmp.append(val) -arr = {} -for val in tmp: - if val in arr: - arr[val] += 1 - else: - arr[val] = 1 - -arr = sorted(arr.items()) -for key, val in arr: - print(key, val) \ No newline at end of file diff --git a/Python_BOJ_2023/2178.py b/Python_BOJ_2023/2178.py deleted file mode 100644 index cb19752..0000000 --- a/Python_BOJ_2023/2178.py +++ /dev/null @@ -1,24 +0,0 @@ -# 미로 탐색 -from collections import deque -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -n, m = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * m for _ in range(n)] - -def bfs(): - queue = deque() - queue.append((0, 0)) - visited[0][0] = 1 - - while queue: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny] and graph[nx][ny] == 1: - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - -bfs() -print(visited[n - 1][m - 1]) \ No newline at end of file diff --git a/Python_BOJ_2023/2178_2.py b/Python_BOJ_2023/2178_2.py deleted file mode 100644 index fb6b12e..0000000 --- a/Python_BOJ_2023/2178_2.py +++ /dev/null @@ -1,26 +0,0 @@ -# 미로 탐색 - -from collections import deque - -n, m = map(int, input().split()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0] * m for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - visited[x][y] = 1 - - while queue: - xx, yy = queue.popleft() - for i in range(4): - nx, ny = xx + dx[i], yy + dy[i] - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny]: - if graph[nx][ny] == 1: - visited[nx][ny] = visited[xx][yy] + 1 - queue.append((nx, ny)) - -bfs(0, 0) -print(visited[n - 1][m - 1]) \ No newline at end of file diff --git a/Python_BOJ_2023/24416.py b/Python_BOJ_2023/24416.py deleted file mode 100644 index 5315d50..0000000 --- a/Python_BOJ_2023/24416.py +++ /dev/null @@ -1,12 +0,0 @@ -# 피보나치 수 -n = int(input()) - -dp = [0] * 1000 -def fibo(n): - dp[1], dp[2] = 1, 1 - for i in range(3, n + 1): - dp[i] = dp[i - 1] + dp[i - 2] - return dp[i] - -ans = fibo(n) -print(ans, n - 2) \ No newline at end of file diff --git a/Python_BOJ_2023/24444.py b/Python_BOJ_2023/24444.py deleted file mode 100644 index 4306da8..0000000 --- a/Python_BOJ_2023/24444.py +++ /dev/null @@ -1,34 +0,0 @@ -# BFS -from collections import deque -import sys - -input = lambda: sys.stdin.readline().rstrip() -n, m, r = map(int, input().split()) -graph = [[] for _ in range(n + 1)] - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) -visited = [0] * (n + 1) -cnt = 1 - -def bfs(): - global cnt - queue = deque() - queue.append((r)) - visited[r] = 1 - - while queue: - now_node = queue.popleft() - graph[now_node].sort() - for next_node in graph[now_node]: - if not visited[next_node]: - cnt += 1 - visited[next_node] = cnt - queue.append((next_node)) - -bfs() - -for val in visited[1:]: - print(val) \ No newline at end of file diff --git a/Python_BOJ_2023/24445.py b/Python_BOJ_2023/24445.py deleted file mode 100644 index 8dc5ea9..0000000 --- a/Python_BOJ_2023/24445.py +++ /dev/null @@ -1,33 +0,0 @@ -# bfs2 -from collections import deque -import sys -input = lambda:sys.stdin.readline() - -n, m, r = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -visited = [0] * (n + 1) - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) - -cnt = 1 -def bfs(n): - global cnt - visited[n] = 1 - queue = deque() - queue.append((n)) - - while queue: - node = queue.popleft() - graph[node].sort(reverse=True) - for next in graph[node]: - if not visited[next]: - cnt += 1 - visited[next] = cnt - queue.append((next)) - -bfs(r) -for i in visited[1:]: - print(i) diff --git a/Python_BOJ_2023/24446.py b/Python_BOJ_2023/24446.py deleted file mode 100644 index c8a776d..0000000 --- a/Python_BOJ_2023/24446.py +++ /dev/null @@ -1,29 +0,0 @@ -# bfs 3 -from collections import deque -import sys -input = lambda: sys.stdin.readline().rstrip() - -n, m, r = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -visited = [0] * (n + 1) - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) - -def bfs(node): - queue = deque() - queue.append((node)) - visited[node] = 1 - while queue: - xnode = queue.popleft() - for nnode in graph[xnode]: - if not visited[nnode]: - visited[nnode] = visited[xnode] + 1 - queue.append((nnode)) - -bfs(r) - -for i in range(1, n + 1): - print(visited[i] - 1) \ No newline at end of file diff --git a/Python_BOJ_2023/24479.py b/Python_BOJ_2023/24479.py deleted file mode 100644 index f0cb66a..0000000 --- a/Python_BOJ_2023/24479.py +++ /dev/null @@ -1,28 +0,0 @@ -# DFS -import sys - -input = lambda: sys.stdin.readline().rstrip() - -n, m, r = map(int, input().split()) -graph = [[] for _ in range(n + 1)] - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) - -cnt = 1 -visited = [0] * (n + 1) -visited[r] = 1 - -def dfs(now): - global cnt - graph[now].sort() - for next in graph[now]: - if not visited[next]: - cnt += 1 - visited[next] = cnt - dfs(next) - -dfs(r) -print(visited) \ No newline at end of file diff --git a/Python_BOJ_2023/24480.py b/Python_BOJ_2023/24480.py deleted file mode 100644 index ee3a33f..0000000 --- a/Python_BOJ_2023/24480.py +++ /dev/null @@ -1,24 +0,0 @@ -# dfs2 - -n, m, r = map(int, input().split()) -graph = [[] for _ in range(n + 1)] -visited = [0] * (n + 1) - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) - -cnt = 1 -def dfs(node): - global cnt - visited[node] = cnt - graph[node].sort(reverse=True) - for next_node in graph[node]: - if not visited[next_node]: - cnt += 1 - dfs(next_node) - -dfs(r) -for val in visited[1:]: - print(val) \ No newline at end of file diff --git a/Python_BOJ_2023/24481.py b/Python_BOJ_2023/24481.py deleted file mode 100644 index 8ed677d..0000000 --- a/Python_BOJ_2023/24481.py +++ /dev/null @@ -1,27 +0,0 @@ -# dfs3 -import sys -sys.setrecursionlimit(10 ** 8) -input = lambda: sys.stdin.readline() - -n, m, start = map(int, input().split()) - -graph = [[] for _ in range(n + 1)] -visited = [-1 for _ in range(n + 1)] - -for _ in range(m): - u, v = map(int, input().split()) - graph[u].append(v) - graph[v].append(u) - -def dfs(node): - graph[node].sort() - for next_node in graph[node]: - if visited[next_node] == -1: - visited[next_node] = visited[node] + 1 - dfs(next_node) - -visited[start] = 0 -dfs(start) - -for val in visited[1:]: - print(val) \ No newline at end of file diff --git a/Python_BOJ_2023/24482.py b/Python_BOJ_2023/24482.py deleted file mode 100644 index c2f2a1f..0000000 --- a/Python_BOJ_2023/24482.py +++ /dev/null @@ -1,30 +0,0 @@ -# 24482 dfs-4 -import sys -sys.setrecursionlimit(10 ** 6) - -n, m, r = map(int, input().split()) -graph = [[] for _ in range(n)] -visited = [False] * n - -for _ in range(m): - u, v = map(int, input().split()) - graph[u - 1].append(v - 1) - graph[v - 1].append(u - 1) - -cnt = 0 -answer = [-1] * n - -def dfs(v): - global cnt - visited[v] = True - answer[v] = cnt - - graph[v].sort(reverse=True) - for new_one in graph[v]: - if not visited[new_one]: - visited[new_one] = True - cnt += 1 - dfs(new_one) - -dfs(r - 1) -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2023/2468.py b/Python_BOJ_2023/2468.py deleted file mode 100644 index 8cbb877..0000000 --- a/Python_BOJ_2023/2468.py +++ /dev/null @@ -1,46 +0,0 @@ -# 안전 영역 -from collections import deque -import sys -input = lambda: sys.stdin.readline() - -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -max_height = max(max(graph)) - -answer = list() -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - visited[x][y] = True - while queue: - xx, yy = queue.popleft() - for i in range(4): - nx, ny = xx + dx[i], yy + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny] and graph[nx][ny]> 0: - queue.append((nx, ny)) - visited[nx][ny] = True - -def decreasing_height(): - for i in range(n): - for j in range(n): - if graph[i][j]> 0: - graph[i][j] -= 1 - -while max_height> 0: - visited = [[False] * n for _ in range(n)] - cnt_building = 0 - for i in range(n): - for j in range(n): - if not visited[i][j] and graph[i][j]> 0: - bfs(i, j) - cnt_building += 1 - - answer.append(cnt_building) - max_height -= 1 - - decreasing_height() - -print(max(answer)) \ No newline at end of file diff --git a/Python_BOJ_2023/2480.py b/Python_BOJ_2023/2480.py deleted file mode 100644 index d3a352b..0000000 --- a/Python_BOJ_2023/2480.py +++ /dev/null @@ -1,13 +0,0 @@ -# 주사위 세개 -a, b, c = map(int, input().split()) - -if a == b == c: - print(10000 + a * 1000) -elif a == b: - print(1000 + a * 100) -elif b == c: - print(1000 + b * 100) -elif c == a: - print(1000 + c * 100) -else: - print(max(a, b, c) * 100) diff --git a/Python_BOJ_2023/2501.py b/Python_BOJ_2023/2501.py deleted file mode 100644 index f4662e9..0000000 --- a/Python_BOJ_2023/2501.py +++ /dev/null @@ -1,13 +0,0 @@ -# 약수 구하기 - -n, k = map(int, input().split()) - -yaksu = list() -for i in range(1, n + 1): - if n % i == 0: - yaksu.append(i) - -if k> len(yaksu): - print(0) -else: - print(yaksu[k - 1]) \ No newline at end of file diff --git a/Python_BOJ_2023/2512.py b/Python_BOJ_2023/2512.py deleted file mode 100644 index fd478bb..0000000 --- a/Python_BOJ_2023/2512.py +++ /dev/null @@ -1,27 +0,0 @@ -# 예산 -n = int(input()) -arra = list(map(int, input().split())) -m = int(input()) -arra.sort() - -def binary_search(arr): - start = 0 - end = max(arr) - - while start <= end: - mid = (start + end) // 2 - print(start, end, mid) - cnt = 0 - for i in range(n): - if arr[i]>= mid: - cnt += mid - else: - cnt += arr[i] - if cnt <= m: - start = mid + 1 - else: - end = mid - 1 - return end - -answer = binary_search(arra) -print(answer) \ No newline at end of file diff --git a/Python_BOJ_2023/25304.py b/Python_BOJ_2023/25304.py deleted file mode 100644 index 6fcc0e5..0000000 --- a/Python_BOJ_2023/25304.py +++ /dev/null @@ -1,12 +0,0 @@ -# 영수증 - -tot = int(input()) -ssum = 0 -for _ in range(int(input())): - price, val = map(int, input().split()) - ssum += price * val - -if tot == ssum: - print("Yes") -else: - print("No") \ No newline at end of file diff --git a/Python_BOJ_2023/25305.py b/Python_BOJ_2023/25305.py deleted file mode 100644 index 4964946..0000000 --- a/Python_BOJ_2023/25305.py +++ /dev/null @@ -1,7 +0,0 @@ -# 커트라인 - -n, k = map(int, input().split()) -scores = list(map(int, input().split())) - -scores.sort(reverse=True) -print(scores[k - 1]) \ No newline at end of file diff --git a/Python_BOJ_2023/2562.py b/Python_BOJ_2023/2562.py deleted file mode 100644 index b4c06cf..0000000 --- a/Python_BOJ_2023/2562.py +++ /dev/null @@ -1,12 +0,0 @@ -# 최댓값 - -max_val = -1 -idx = 0 -for i in range(9): - input_val = int(input()) - if max_val < input_val: - max_val = max(max_val, input_val) - idx = i + 1 - -print(max_val) -print(idx) diff --git a/Python_BOJ_2023/2566.py b/Python_BOJ_2023/2566.py deleted file mode 100644 index f45132b..0000000 --- a/Python_BOJ_2023/2566.py +++ /dev/null @@ -1,13 +0,0 @@ -# 최댓값 - -graph = [list(map(int, input().split())) for _ in range(9)] -max_val, x, y = 0, 0, 0 - -for i in range(9): - for j in range(9): - if graph[i][j]> max_val: - max_val = max(graph[i][j], max_val) - x, y = i, j - -print(max_val) -print(x + 1, y + 1) \ No newline at end of file diff --git a/Python_BOJ_2023/2587.py b/Python_BOJ_2023/2587.py deleted file mode 100644 index ab1e7a8..0000000 --- a/Python_BOJ_2023/2587.py +++ /dev/null @@ -1,9 +0,0 @@ -# 대표값2 - -nums = list() -for i in range(5): - nums.append(int(input())) -print(sum(nums) // 5) - -nums.sort() -print(nums[len(nums) // 2]) \ No newline at end of file diff --git a/Python_BOJ_2023/2606.py b/Python_BOJ_2023/2606.py deleted file mode 100644 index 175eaad..0000000 --- a/Python_BOJ_2023/2606.py +++ /dev/null @@ -1,26 +0,0 @@ -# 바이러스 -import sys -input = lambda: sys.stdin.readline() - -n = int(input()) -m = int(input()) -graph = [[] for _ in range(n + 1)] -for _ in range(m): - x, y = map(int, input().split()) - graph[x].append(y) - graph[y].append(x) - -ans = 0 -visited = [0] * (n + 1) - -def dfs(node): - global ans - visited[node] = 1 - graph[node].sort() - for next_node in graph[node]: - if not visited[next_node]: - dfs(next_node) - ans += 1 - -dfs(1) -print(ans) \ No newline at end of file diff --git a/Python_BOJ_2023/2667.py b/Python_BOJ_2023/2667.py deleted file mode 100644 index f16d9f5..0000000 --- a/Python_BOJ_2023/2667.py +++ /dev/null @@ -1,31 +0,0 @@ -n = int(input()) -graph = [list(map(int, input())) for _ in range(n)] -visited = [[0 for _ in range(n)] for _ in range(n)] -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] -cnt = 0 - -def dfs(x, y): - global cnt - visited[x][y] = 1 - if graph[x][y] == 1: - cnt += 1 - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < n and 0 <= ny < n: - if not visited[nx][ny]: - if graph[nx][ny] == 1: - dfs(nx, ny) - -answer = list() -for i in range(n): - for j in range(n): - if graph[i][j] == 1 and not visited[i][j]: - dfs(i, j) - answer.append(cnt) - cnt = 0 - -print(len(answer)) -answer.sort() -for i in answer: - print(i) \ No newline at end of file diff --git a/Python_BOJ_2023/2738.py b/Python_BOJ_2023/2738.py deleted file mode 100644 index 043bf84..0000000 --- a/Python_BOJ_2023/2738.py +++ /dev/null @@ -1,21 +0,0 @@ -# 행렬 덧셈 - -n, m = map(int, input().split()) - -map1 = list() -for i in range(n): - map1.append(list(map(int, input().split()))) - -map2 = list() -for i in range(n): - map2.append(list(map(int, input().split()))) - -ans = list() -for i in range(n): - for j in range(m): - ans.append(map1[i][j] + map2[i][j]) - -for i in range(1, len(ans) + 1): - print(ans[i - 1], end=" ") - if i % m == 0: - print() diff --git a/Python_BOJ_2023/2754.py b/Python_BOJ_2023/2754.py deleted file mode 100644 index 68111c8..0000000 --- a/Python_BOJ_2023/2754.py +++ /dev/null @@ -1,13 +0,0 @@ -# 학점계산 - -grade = { - 'A+' : 4.3, 'A0': 4.0, 'A-': 3.7, - 'B+' : 3.3, 'B0' : 3.0, 'B-' : 2.7, - 'C+' : 2.3, 'C0' : 2.0, 'C-' : 1.7, - 'D+' : 1.3, 'D0' : 1.0, 'D-' : 0.7, - 'F' : 0.0 -} - -inval = input() - -print(grade[inval]) \ No newline at end of file diff --git a/Python_BOJ_2023/2798.py b/Python_BOJ_2023/2798.py deleted file mode 100644 index 9308289..0000000 --- a/Python_BOJ_2023/2798.py +++ /dev/null @@ -1,13 +0,0 @@ -# 블랙잭 - -n, m = map(int, input().split()) -arr = list(map(int, input().split())) -arr.sort(reverse=True) -max_val = -1 -for i in range(n - 2): - for j in range(i + 1, n - 1): - for k in range(j + 1, n): - sum = arr[i] + arr[j] + arr[k] - if max_val <= sum and sum <= m: - max_val = max(max_val, sum) -print(max_val) \ No newline at end of file diff --git a/Python_BOJ_2023/2839.py b/Python_BOJ_2023/2839.py deleted file mode 100644 index 69d7467..0000000 --- a/Python_BOJ_2023/2839.py +++ /dev/null @@ -1,16 +0,0 @@ -# 설탕 배달 -n = int(input()) - -ans = 0 - -while True: - if n % 5 == 0: - ans = ans + (n // 5) - print(ans) - break - - n -= 3 - ans += 1 - if n < 0: - print(-1) - break diff --git a/Python_BOJ_2023/4179.py b/Python_BOJ_2023/4179.py deleted file mode 100644 index 7f578e4..0000000 --- a/Python_BOJ_2023/4179.py +++ /dev/null @@ -1,55 +0,0 @@ -# 불! -from collections import deque - -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - -r, c = map(int, input().split()) -graph = [list(map(str, input())) for _ in range(r)] -visited = [[0 for _ in range(c)] for _ in range(r)] - -def fire_spread(): - fqlen = len(fire_queue) - while fqlen: - x, y = fire_queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < r and 0 <= ny < c: - if graph[nx][ny] == '.': - graph[nx][ny] = 'F' - fire_queue.append(((nx, ny))) - fqlen -= 1 - -def find_exit(x, y): - queue.append((x, y)) - visited[x][y] = 1 - - while queue: - qlen = len(queue) - while qlen: - x, y = queue.popleft() - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < r and 0 <= ny < c: - if not visited[nx][ny] and graph[nx][ny] == '.': - visited[nx][ny] = visited[x][y] + 1 - queue.append((nx, ny)) - else: - print(visited[x][y]) - return - qlen -= 1 - fire_spread() - - print("IMPOSSIBLE") - return - -queue, fire_queue = deque(), deque() -for i in range(r): - for j in range(c): - if graph[i][j] == 'J': - s_x, s_y = i, j - graph[i][j] = '.' - elif graph[i][j] == 'F': - fire_queue.append((i, j)) - -fire_spread() -find_exit(s_x, s_y) \ No newline at end of file diff --git a/Python_BOJ_2023/9095.py b/Python_BOJ_2023/9095.py deleted file mode 100644 index 190afeb..0000000 --- a/Python_BOJ_2023/9095.py +++ /dev/null @@ -1,17 +0,0 @@ -# 1,2,3 더하기 - -def find(n): - dp = [0] * 100 - dp[1], dp[2], dp[3] = 1, 2, 4 - - for i in range(4, n + 1): - dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3] - return dp[n] - -nums = list() - -for _ in range(int(input())): - nums.append(int(input())) - -for num in nums: - print(find(num)) \ No newline at end of file diff --git a/Python_BOJ_2023/9625.py b/Python_BOJ_2023/9625.py deleted file mode 100644 index 0cf9715..0000000 --- a/Python_BOJ_2023/9625.py +++ /dev/null @@ -1,20 +0,0 @@ -# BABBA - -k = int(input()) - -# 0 -> [1, 0] -# 1 -> [0, 1] -# 2 -> [1, 1] -# 3 -> [1, 2] -# 4 -> [2, 3] -# 5 -> babbabab [3, 5] -# 6 -> babbababbabba [5, 8] -# 7 -> babbababbabbababbabab [8, 13] - -arr = [[1, 0], [0, 1], [1, 1]] - -if k>= 3: - for i in range(3, k + 1): - arr.append([arr[i - 2][0] + arr[i - 1][0], arr[i - 2][1] + arr[i - 1][1]]) - -print(arr[k][0], arr[k][1]) \ No newline at end of file diff --git a/Python_BOJ_2023/9655.py b/Python_BOJ_2023/9655.py deleted file mode 100644 index c30bc37..0000000 --- a/Python_BOJ_2023/9655.py +++ /dev/null @@ -1,8 +0,0 @@ -# 돌게임 - -n = int(input()) - -if n % 2 == 0: - print("CY") -else: - print("SK") \ No newline at end of file diff --git "a/Python_Programmers/2016353円205円204円.py" "b/Python_Programmers/2016353円205円204円.py" deleted file mode 100644 index 3f5e856..0000000 --- "a/Python_Programmers/2016353円205円204円.py" +++ /dev/null @@ -1,6 +0,0 @@ -a, b = map(int, input().split()) - -day = ['THU','FRI','SAT','SUN','MON','TUE','WED'] -month = [31, 29, 31, 30, 31, 30 , 31, 31, 30, 31, 30, 31] - -print(day[(sum(month[:a-1]) + b) % 7]) \ No newline at end of file diff --git "a/Python_Programmers/K353円262円210円354円247円270円354円210円230円.py" "b/Python_Programmers/K353円262円210円354円247円270円354円210円230円.py" deleted file mode 100644 index b132b2f..0000000 --- "a/Python_Programmers/K353円262円210円354円247円270円354円210円230円.py" +++ /dev/null @@ -1,18 +0,0 @@ -array = [1, 5, 2, 6, 3, 7, 4] -commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]] - - -def solution(array, commands): - answer = [] - tmp = [] - for i in range(len(commands)): - for j in range(commands[i][0]-1, commands[i][1]): - tmp.append(array[j]) - tmp.sort() - answer.append(tmp[commands[i][2] - 1]) - tmp = [] - - return answer - - -print(solution(array, commands)) \ No newline at end of file diff --git "a/Python_Programmers/[2021]354円271円264円354円271円264円354円230円244円355円216円230円354円235円264円 354円275円224円355円205円214円 1.py" "b/Python_Programmers/[2021]354円271円264円354円271円264円354円230円244円355円216円230円354円235円264円 354円275円224円355円205円214円 1.py" deleted file mode 100644 index 4f2b5fb..0000000 --- "a/Python_Programmers/[2021]354円271円264円354円271円264円354円230円244円355円216円230円354円235円264円 354円275円224円355円205円214円 1.py" +++ /dev/null @@ -1,45 +0,0 @@ -money = 12345678 -minratio, maxratio = 10, 20 -ranksize = 250000 -threshold = 10000000 -months = 4 - - -def solution(money, minratio, maxratio, ranksize, threshold, months): - maybe_youhave_money = money - (money % 100) - tax_guide_line = [] - if minratio != 0 and maxratio != 0: - for i in range(maxratio - minratio): - tax_guide_line.append(threshold + ranksize * i) - else: - return money - - def check_tax_ratio(cash): - if cash < threshold: - tax_rate = 0 - elif cash>= tax_guide_line[-1] + ranksize: - tax_rate = maxratio - else: - for i in range(len(tax_guide_line)): - if tax_guide_line[i] <= cash < tax_guide_line[i] + ranksize - 1: - tax_rate = minratio + i - - return tax_rate - - time_cnt = 0 - maybe_cur_money = maybe_youhave_money - cur_tax_ratio = check_tax_ratio(maybe_cur_money) / 100 - - while True: - if time_cnt == months: - break - bye_my_money = int(maybe_cur_money * cur_tax_ratio) - money -= bye_my_money - maybe_cur_money = money - (money % 100) - cur_tax_ratio = check_tax_ratio(maybe_cur_money) / 100 - - time_cnt += 1 - return money - - -print(solution(money, minratio, maxratio, ranksize, threshold, months)) \ No newline at end of file diff --git "a/Python_Programmers/[2021]354円271円264円354円271円264円354円230円244円355円216円230円354円235円264円 354円275円224円355円205円214円 4.py" "b/Python_Programmers/[2021]354円271円264円354円271円264円354円230円244円355円216円230円354円235円264円 354円275円224円355円205円214円 4.py" deleted file mode 100644 index a720025..0000000 --- "a/Python_Programmers/[2021]354円271円264円354円271円264円354円230円244円355円216円230円354円235円264円 354円275円224円355円205円214円 4.py" +++ /dev/null @@ -1,22 +0,0 @@ -ages = [35, 25, 3, 8, 7] -wires = [[1, 2, 5], [2, 1, 5], [1, 3, 2], [3, 4, 2], [3, 5, 20], [4, 5, 1]] - - -def solution(ages, wires): - maxWireLength = [0] * (len(ages) + 1) - for i in wires: - start, end, length = i[0], i[1], i[2] - maxWireLength[end] = max(maxWireLength[end], length + ages[start - 1]) - - arr = [0] * len(ages) - for i in range(len(ages)): - arr[i] = [i + 1, min(ages[i], maxWireLength[i + 1])] - arr.sort(key = lambda x: x[1]) - - answer = [] - for i in range(len(arr)): - answer.append(arr[i][0]) - return answer - - -print(solution(ages, wires)) \ No newline at end of file diff --git "a/Python_Programmers/352円265円254円353円252円205円353円263円264円355円212円270円.py" "b/Python_Programmers/352円265円254円353円252円205円353円263円264円355円212円270円.py" deleted file mode 100644 index cba7919..0000000 --- "a/Python_Programmers/352円265円254円353円252円205円353円263円264円355円212円270円.py" +++ /dev/null @@ -1,26 +0,0 @@ -# people = [70, 50, 80, 50] -people = [70, 80, 50] -limit = 100 - - -def solution(people, limit): - answer = [] - flag = False - - for i in range(len(people)): - for j in range(i + 1, len(people)): - if people[i] + people[j]> limit: - continue - else: - answer.append([people[i], people[j]]) - flag = True - - if flag: - flag = False - continue - else: - answer.append(people[i]) - print(answer) - return answer - -solution(people, limit) \ No newline at end of file diff --git "a/Python_Programmers/352円270円260円353円212円245円352円260円234円353円260円234円.py" "b/Python_Programmers/352円270円260円353円212円245円352円260円234円353円260円234円.py" deleted file mode 100644 index 97bea1e..0000000 --- "a/Python_Programmers/352円270円260円353円212円245円352円260円234円353円260円234円.py" +++ /dev/null @@ -1,32 +0,0 @@ -## 기능개발 - 문제 설명 -# 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. -# 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. -# 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, -# 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. -# 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 -# 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. - -progresses = [95, 90, 99, 99, 80, 99] # [93, 30, 55] -speeds = [1, 1, 1, 1, 1, 1] # [1, 30, 5] - - -def solution(progresses, speeds): - answer = [] - while progresses: - cnt = 0 - for i in range(len(speeds)): - progresses[i] += speeds[i] - - if progresses[0]>= 100: - while progresses: - if progresses[0]>= 100: - progresses.pop(0) - speeds.pop(0) - cnt += 1 - else: - break - answer.append(cnt) - return answer - - -print(solution(progresses, speeds)) \ No newline at end of file diff --git "a/Python_Programmers/353円204円244円355円212円270円354円233円214円355円201円254円.py" "b/Python_Programmers/353円204円244円355円212円270円354円233円214円355円201円254円.py" deleted file mode 100644 index 471aa01..0000000 --- "a/Python_Programmers/353円204円244円355円212円270円354円233円214円355円201円254円.py" +++ /dev/null @@ -1,56 +0,0 @@ -import sys -sys.setrecursionlimit(10001) - -n = 4 -computers = [[1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 1, 0], [1, 1, 0, 1]] - - -def find(arr, x): - if arr[x] == x: - return x - else: - arr[x] = find(arr, arr[x]) - return arr[x] - - -def union(arr, x, y): - x = find(arr, x) - y = find(arr, y) - if x < y: - arr[y] = x - else: - arr[x] = y - - -def solution(n, computers): - parent = [i for i in range(n + 1)] - - tmp = [] - for i in range(n): - for j in range(n): - if i == j: continue # 자기 자신은 skip - if computers[i][j] == 1: # 연결된 노드 번호를 찾아서 - tmp.append([i + 1, j + 1]) # 양방향이므로 저장 - tmp.append([j + 1, i + 1]) - tmp.sort(key = lambda x : x[0]) # 중복을 제거하기 위해 사전 준비 (x, y)에서 x기준 정렬 - - tmp2 = [] - for i in tmp: - if len(tmp2) == 0: # tmp2가 비어있으면 push - tmp2.append(i) - if tmp2[-1] == i: # tmp2의 Peek와 값이 같으면 넣지 않음 - continue - else: # 다르다면 push - tmp2.append(i) - - for i in tmp2: # 중복 처리된 값을 갖고 유니온-파인드 - a, b = i - union(parent, a, b) - - answer = set() # 리스트를 set해주면 중복된 부모 값이 사라지므로 노드끼리 연결된 덩어리 수가 도출된다. - for i in range(1, len(parent)): - answer.add(find(parent, parent[i])) # parent의 부모 노드를 set에 add - return len(answer) - - -print(solution(n, computers)) \ No newline at end of file diff --git "a/Python_Programmers/353円213円244円353円246円254円353円245円274円 354円247円200円353円202円230円353円212円224円 355円212円270円353円237円255円.py" "b/Python_Programmers/353円213円244円353円246円254円353円245円274円 354円247円200円353円202円230円353円212円224円 355円212円270円353円237円255円.py" deleted file mode 100644 index 53d93dc..0000000 --- "a/Python_Programmers/353円213円244円353円246円254円353円245円274円 354円247円200円353円202円230円353円212円224円 355円212円270円353円237円255円.py" +++ /dev/null @@ -1,19 +0,0 @@ -bridge_length, weight = 2, 10 -truck_weights = [7,4,5,6] - -def solution(bridge_length, weight, truck_weights): - answer = 0 - bridge = [0] * bridge_length - - while len(bridge): - answer += 1 - bridge.pop(0) - if truck_weights: - if sum(bridge) + truck_weights[0] <= weight: - bridge.append(truck_weights.pop(0)) - else: - bridge.append(0) - return answer - - -print(solution(bridge_length, weight, truck_weights)) \ No newline at end of file diff --git "a/Python_Programmers/353円215円224円 353円247円265円352円262円214円.py" "b/Python_Programmers/353円215円224円 353円247円265円352円262円214円.py" deleted file mode 100644 index fc775de..0000000 --- "a/Python_Programmers/353円215円224円 353円247円265円352円262円214円.py" +++ /dev/null @@ -1,35 +0,0 @@ -## 더 맵게 -# 문제 설명 -# 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. -# 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. - -# 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) - -# Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. -# Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, -# 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. -import heapq - -scoville = [1, 2, 3, 9, 10, 12] -K = 7 - - -def solution(scoville, K): - answer = 0 - queue = [] - - for i in scoville: - heapq.heappush(queue, i) - - while queue: - if queue[0]>= K: - return answer - if len(queue) == 1 and queue[0] < K: - return -1 - first = heapq.heappop(queue) - second = heapq.heappop(queue) - heapq.heappush(queue, first + second * 2) - answer += 1 - - -print(solution(scoville, K)) \ No newline at end of file diff --git "a/Python_Programmers/354円206円214円354円210円230円354円260円276円352円270円260円.py" "b/Python_Programmers/354円206円214円354円210円230円354円260円276円352円270円260円.py" deleted file mode 100644 index fd36b1f..0000000 --- "a/Python_Programmers/354円206円214円354円210円230円354円260円276円352円270円260円.py" +++ /dev/null @@ -1,39 +0,0 @@ -from itertools import permutations -import math - -numbers = '17' - - -def Eratosthenes(n): # 에라토스테네스의 체로 소수 리스트 제작 - flag = [True for _ in range(n + 1)] - - for i in range(2, int(math.sqrt(n)) + 1): - if flag[i] == True: - j = 2 - while i * j <= n: - flag[i * j] = False - j += 1 - - return [i for i in range(2, n + 1) if flag[i]] - - -def solution(numbers): - tmp = [] - for i in range(1, len(numbers) + 1): - tmp += list(map(''.join, permutations(numbers,i))) - - arr = [] - for i in range(len(tmp)): - arr.append(int(tmp[i])) - arr = list(map(int, set(arr))) - - answer = 0 - prime_number = Eratosthenes(max(arr)) - for i in range(len(arr)): - if arr[i] in prime_number: - answer += 1 - - return answer - - -print(solution(numbers)) \ No newline at end of file diff --git "a/Python_Programmers/354円227円254円355円226円211円 352円262円275円353円241円234円.py" "b/Python_Programmers/354円227円254円355円226円211円 352円262円275円353円241円234円.py" deleted file mode 100644 index ca246a3..0000000 --- "a/Python_Programmers/354円227円254円355円226円211円 352円262円275円353円241円234円.py" +++ /dev/null @@ -1,35 +0,0 @@ -# tickets = [["ICN", "JFK"], ["HND", "IAD"], ["JFK", "HND"]] -tickets = [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] - - -def solution(tickets): - routes = dict() - for from_, to_ in tickets: - if from_ in routes: - routes[from_].append(to_) - else: - routes[from_] = [to_] - - for key in routes.keys(): - print(key) - routes[key].sort(reverse=True) - - start = ['ICN'] - answer = list() - while start: - now = start[-1] - if now not in routes or len(routes[now]) == 0: # 다 차면 데이터를 빼서 ans에 넣음 - answer.append(start.pop()) - else: - start.append(routes[now].pop()) - - return answer[::-1] - - -print(solution(tickets)) - - - -# {'ICN': ['SFO', 'ATL'], 'SFO': ['ATL'], 'ATL': ['ICN', 'SFO']} 입력 -# {'ICN': ['SFO', 'ATL'], 'SFO': ['ATL'], 'ATL': ['SFO', 'ICN']} key순 정렬 -# ['SFO', 'ATL', 'SFO', 'ICN', 'ATL', 'ICN'] diff --git "a/Python_Programmers/354円235円264円354円203円201円355円225円234円 353円254円270円354円236円220円 353円247円214円353円223円244円352円270円260円.py" "b/Python_Programmers/354円235円264円354円203円201円355円225円234円 353円254円270円354円236円220円 353円247円214円353円223円244円352円270円260円.py" deleted file mode 100644 index 3d1b297..0000000 --- "a/Python_Programmers/354円235円264円354円203円201円355円225円234円 353円254円270円354円236円220円 353円247円214円353円223円244円352円270円260円.py" +++ /dev/null @@ -1,16 +0,0 @@ -s=" try hello world " - -def solution(s): - s=s.split(' ') - print(s) - a=[] - for j in range(len(s)): - for i in range(len(s[j])): - if i%2 == 0: - a.append(s[j][i].upper()) - else: - a.append(s[j][i].lower()) - a.append(" ") - a="".join(a) - return a -print(solution(s)) diff --git "a/Python_Programmers/354円240円225円354円210円230円 353円202円264円353円246円274円354円260円250円354円210円234円354円234円274円353円241円234円 353円260円260円354円271円230円355円225円230円352円270円260円.py" "b/Python_Programmers/354円240円225円354円210円230円 353円202円264円353円246円274円354円260円250円354円210円234円354円234円274円353円241円234円 353円260円260円354円271円230円355円225円230円352円270円260円.py" deleted file mode 100644 index de230b4..0000000 --- "a/Python_Programmers/354円240円225円354円210円230円 353円202円264円353円246円274円354円260円250円354円210円234円354円234円274円353円241円234円 353円260円260円354円271円230円355円225円230円352円270円260円.py" +++ /dev/null @@ -1,9 +0,0 @@ -n = int(18372) - - -def solution(n): - answer = '' - for i in sorted(str(n), reverse=True): - answer += i - return int(answer) -print(solution(n)) \ No newline at end of file diff --git "a/Python_Programmers/354円247円235円354円247円200円354円226円264円 354円240円234円352円261円260円355円225円230円352円270円260円.py" "b/Python_Programmers/354円247円235円354円247円200円354円226円264円 354円240円234円352円261円260円355円225円230円352円270円260円.py" deleted file mode 100644 index bcfe814..0000000 --- "a/Python_Programmers/354円247円235円354円247円200円354円226円264円 354円240円234円352円261円260円355円225円230円352円270円260円.py" +++ /dev/null @@ -1,24 +0,0 @@ -# https://programmers.co.kr/learn/courses/30/lessons/12973 - -s = 'baabaa' -# 답 : 1 - - -def solution(s): - stack = [] - for i in range(len(s)): - if len(stack) == 0: # 값이 없으니 하나는 넣어 - stack.append(s[i]) - else: - if stack[-1] == s[i]: # 제일 위의 Peek값과 지금 꺼낸 값이 같다면 - stack.pop() # pop - else: - stack.append(s[i]) # Peek값과 다르면 push한다 - - answer = 0 - if len(stack) == 0: # 스택이 비어있다 == 모든 문자열이 쌍을 이루고 pop되서 사라졌다 - answer = 1 - return answer - - -print(solution(s)) \ No newline at end of file diff --git "a/Python_Programmers/354円271円264円355円216円253円.py" "b/Python_Programmers/354円271円264円355円216円253円.py" deleted file mode 100644 index 44cbba3..0000000 --- "a/Python_Programmers/354円271円264円355円216円253円.py" +++ /dev/null @@ -1,20 +0,0 @@ -brown, yellow = 24, 24 - - -def solution(brown, yellow): - answer = [0, 0] - sum = brown + yellow - a = 1 - while True: - a += 1 - b = sum // a - - if a>= b and a * b == sum: - if (a - 2) * (b - 2) == yellow: - answer[0], answer[1] = a, b - break - - return answer - - -print(solution(brown, yellow)) \ No newline at end of file diff --git "a/Python_Programmers/355円224円204円353円246円260円355円204円260円.py" "b/Python_Programmers/355円224円204円353円246円260円355円204円260円.py" deleted file mode 100644 index f3a5ef8..0000000 --- "a/Python_Programmers/355円224円204円353円246円260円355円204円260円.py" +++ /dev/null @@ -1,30 +0,0 @@ - -priorities = [1, 1, 9, 1, 1, 1] -location = 0 -# 답 : 5 - - -def solution(priorities, location): - a = dict() - for i in range(len(priorities)): - a[i] = [priorities[i], False] - a[location][1] = True # location 값의 False를 True로 바꾼다. - # 나중에 answer에 출력된 순서대로 저장된 리스트에서 True 값의 idx를 찾아주기 위함 - - tmp = [] - for i in range(len(a)): - tmp.append(a[i]) - - answer = [] - while tmp: - if tmp[0][0] < max(tmp, key = lambda x: x[0])[0]: - tmp.append(tmp.pop(0)) # 내부에 popleft 값보다 큰값이 있다면 이 값은 맨뒤로 보낸다. - else: - answer.append(tmp.pop(0)) # 그 외에는 출력했으니 출력한 순서를 알 수 있게 answer에 저장한다. - - for idx in range(len(answer)): - if answer[idx][1]: # 출력된 리스트 값중 True인 값을 찾아 idx를 출력한다. - return idx + 1 - - -print(solution(priorities, location)) \ No newline at end of file diff --git a/README.md b/README.md index 99ed6e7..5cd706e 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,18 @@ -# Algorithm-CodingTest -Study for coding test
-and you can read my algorithm review on my Blog.
-https://par3k.tistory.com +# Python Competitive Programming Team Notes +* This Repo. is a python library for Problem solving competition. +* when you need an implementation of a specific algorithm, you can find it. +* 코딩테스트 준비를 위한 파이썬 소스코드 저장소 입니다. +* 주로 백준 온라인 저지 (BOJ)의 문제들 풀이 저장소로 사용됩니다. +* You can read My code Review on my Blog : https://blog.naver.com/hoijae0194 -## Git Commit MSG Convention as Follow -``` -[yy.mm.dd] description +# Contents -* yy.mm.dd : Commit date -* description : Message +## Sorting (정렬) +* Selection Sort (선택 정렬) +* Insertion Sort (삽입 정렬) +* Quick Sort (퀵 정렬) -``` +## Searching (탐색) +* Binary Search (이진 탐색) +* DFS (깊이 우선 탐색) +* BFS (너비 우선 탐색) diff --git a/SWEA_Python/1227-bfs.py b/SWEA_Python/1227-bfs.py deleted file mode 100644 index 5112a6e..0000000 --- a/SWEA_Python/1227-bfs.py +++ /dev/null @@ -1,36 +0,0 @@ -# 미로 2 -from collections import deque -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def bfs(x, y): - global ans - queue.append([x, y]) - visited[x][y] = True - - while queue: - q = queue.popleft() - for i in range(4): - nx, ny = q[0] + dx[i], q[1] + dy[i] - if 0 <= ny < 100 and 0 <= nx < 100 and not visited[nx][ny] and graph[nx][ny] != 1: - if graph[nx][ny] == 3: - ans = 1 - return - visited[nx][ny] = True - queue.append([nx, ny]) - - -for _ in range(1,11): - t = int(input()) - graph = list() - - for i in range(100): - line = list(map(int, list(input().strip()))) - graph.append(line) - - visited = [[False] * 100 for _ in range(100)] - ans = 0 - - queue = deque() - bfs(1, 1) - print(f'#{t} {ans}') \ No newline at end of file diff --git a/SWEA_Python/1227-dfs.py b/SWEA_Python/1227-dfs.py deleted file mode 100644 index e046149..0000000 --- a/SWEA_Python/1227-dfs.py +++ /dev/null @@ -1,33 +0,0 @@ -# 미로 2 -import sys -sys.setrecursionlimit() -dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] - - -def dfs(x, y): - global ans - visited[x][y] = True - if ans: return - - for i in range(4): - nx, ny = x + dx[i], y + dy[i] - if 0 <= nx < 100 and 0 <= ny < 100: - if not visited[nx][ny] and graph[nx][ny] != 1: - visited[nx][ny] = True - if graph[nx][ny] == 3: - ans = 1 - dfs(nx, ny) - - -for _ in range(1,11): - t = int(input()) - graph = list() - - for i in range(100): - line = list(map(int, list(input().strip()))) - graph.append(line) - - visited = [[False] * 100 for _ in range(100)] - ans = 0 - dfs(1, 1) - print(f'#{t} {ans}') \ No newline at end of file diff --git a/SWEA_Python/4789.py b/SWEA_Python/4789.py deleted file mode 100644 index 4e26244..0000000 --- a/SWEA_Python/4789.py +++ /dev/null @@ -1,15 +0,0 @@ -for tc in range(int(input())): - a = input() - people = 0 - ans= 0 - - for need_pe, pe_cnt in enumerate(a): - pe_cnt = int(pe_cnt) - if need_pe <= people: - - people += pe_cnt - else: - ans += need_pe - people - people += need_pe - people + pe_cnt - - print(f'#{tc + 1} {ans}') \ No newline at end of file diff --git a/SWEA_Python/6485.py b/SWEA_Python/6485.py deleted file mode 100644 index 0ff5c45..0000000 --- a/SWEA_Python/6485.py +++ /dev/null @@ -1,13 +0,0 @@ -for tc in range(int(input())): - arr = [0] * 5001 - ans = list() - for _ in range(int(input())): - a, b = map(int, input().split()) - for i in range(a, b + 1): - arr[i] += 1 - - for _ in range(int(input())): - c = int(input()) - ans.append(str(arr[c])) - - print(f'#{tc+1} {" ".join(ans)}') diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..571d464 --- /dev/null +++ b/input.txt @@ -0,0 +1,2 @@ +10 +65 73 66 87 92 67 55 79 75 80 \ No newline at end of file diff --git "a/section 2/1353円262円210円.py" "b/section 2/1353円262円210円.py" new file mode 100644 index 0000000..2c39d3f --- /dev/null +++ "b/section 2/1353円262円210円.py" @@ -0,0 +1,16 @@ +# K번째 약수 + +import sys +sys.stdin = open("../input.txt", "rt") +n, k = map(int, input().split()) +count = 0 + +for i in range(1, n+1): # range(1, n+1) 이거를 잊지 말기 + if n % i == 0: + count += 1 + + if count == k: + print(i) + break +else: + print(-1) diff --git "a/section 2/2353円262円210円.py" "b/section 2/2353円262円210円.py" new file mode 100644 index 0000000..2edb496 --- /dev/null +++ "b/section 2/2353円262円210円.py" @@ -0,0 +1,16 @@ +# K번째 작은 수 + +import sys +sys.stdin = open("../input.txt", "rt") + +T = int(input()) +count = 0 + +for i in range(T): + N, s, e, k = map(int, input().split()) + a = list(map(int, input().split())) + a = a[s-1: e] + # print(a) + a.sort() + # print(a) + print('#%d %d' %(i+1, a[k-1])) \ No newline at end of file diff --git "a/section 2/3353円262円210円.py" "b/section 2/3353円262円210円.py" new file mode 100644 index 0000000..f9c68bd --- /dev/null +++ "b/section 2/3353円262円210円.py" @@ -0,0 +1,20 @@ +# K번째 큰수 + +import sys +sys.stdin = open("../input.txt", "rt") + +n, k = map(int, input().split()) +a = list(map(int, input().split())) + +result = set() + +for i in range(n): + for j in range(i+1, n): + for z in range(j+1, n): + result.add(a[i]+a[j]+a[z]) +result = list(result) +# print(result) +result.sort(reverse=1) +# print(result) +print(result[k-1]) + diff --git "a/section 2/4353円262円210円.py" "b/section 2/4353円262円210円.py" new file mode 100644 index 0000000..0bae26d --- /dev/null +++ "b/section 2/4353円262円210円.py" @@ -0,0 +1,23 @@ +# 대표값 + +import sys +sys.stdin = open("../input.txt", "rt") + +n = int(input()) +a = list(map(int, input().split())) +print(a) +avg = round(sum(a)/n) +min = 214700000 + +for idx, x in enumerate(a): + temp = abs(x - avg) + print(temp) + if temp < min: + min = temp + score = x + result = idx + 1 + elif temp == min: + if x> score: + score = x + result = idx + 1 +print(avg, result) \ No newline at end of file diff --git "a/section 2/5353円262円210円.py" "b/section 2/5353円262円210円.py" new file mode 100644 index 0000000..d434c32 --- /dev/null +++ "b/section 2/5353円262円210円.py" @@ -0,0 +1,19 @@ +import sys + +sys.stdin = open("../input.txt", "rt") +n, m = list(map(int, input().split())) + +cnt = [0] * (n+m+3) +max = -21470000000 + +for i in range(1, n+1): + for j in range(1, m+1): + cnt[i+j] += 1 + +for i in range(n+m+1): + if cnt[i]>max: + max = cnt[i] + +for i in range(n+m+1): + if cnt[i] == max: + print(i, end=' ') diff --git a/theory_Python/.DS_Store b/theory_Python/.DS_Store deleted file mode 100644 index b378b3d..0000000 Binary files a/theory_Python/.DS_Store and /dev/null differ diff --git a/theory_Python/DBN/10-1.py b/theory_Python/DBN/10-1.py deleted file mode 100644 index 6172ba2..0000000 --- a/theory_Python/DBN/10-1.py +++ /dev/null @@ -1,36 +0,0 @@ -# 기본적인 서로소 집합 알고리즘 소스코드 - - -def find_parent(parent, x): - if parent[x] != x: - return find_parent(parent, parent[x]) - return parent[x] - - -def union_parent(parent, a, b): - a = find_parent(parent, a) - b = find_parent(parent, b) - if a < b: - parent[b] = a - else: - parent[a] = b - - -v, e = map(int, input().split()) -parent = [0] * (v+1) - -for i in range(1, v+1): - parent[i] = i - -for i in range(e): - a, b = map(int, input().split()) - union_parent(parent, a, b) - -print('각 원소가 속한 집합 : ', end=' ') -for i in range(1, v+1): - print(find_parent(parent, i), end=' ') -print() - -print('부모 테이블 : ', end=' ') -for i in range(1, v+1): - print(parent[i], end=' ') \ No newline at end of file diff --git a/theory_Python/DBN/10-4.py b/theory_Python/DBN/10-4.py deleted file mode 100644 index 0087063..0000000 --- a/theory_Python/DBN/10-4.py +++ /dev/null @@ -1,38 +0,0 @@ -# 서로소 집합을 활용한 사이클 판별 소스코드 - -def find_parent(parent, x): - if parent[x] != x: - parent[x] = find_parent(parent, parent[x]) - return parent[x] - - -def union_parent(parent, a, b): - a = find_parent(parent, a) - b = find_parent(parent, b) - - if a < b: - parent[b] = a - else: - parent[a] = b - - -v, e = map(int, input().split()) -parent = [0] * (v+1) - -for i in range(1, v+1): - parent[i] = i - -cycle = False - -for i in range(e): - a, b = map(int, input().split()) - if find_parent(parent, a) == find_parent(parent, b): - cycle = True - break - else: - union_parent(parent, a, b) - -if cycle: - print('사이클이 발생함') -else: - print('사이클이 발생하지 않음') \ No newline at end of file diff --git a/theory_Python/DBN/3-1.py b/theory_Python/DBN/3-1.py deleted file mode 100644 index a910b0a..0000000 --- a/theory_Python/DBN/3-1.py +++ /dev/null @@ -1,10 +0,0 @@ -n = 1260 -count = 0 - -list = [500, 100, 50, 10] - -for i in list: # O(K) 즉, list 갯수만금 복잡도는 영향을 받는다. - count += n // i - n = n % i - -print(count) diff --git a/theory_Python/DBN/3-2.py b/theory_Python/DBN/3-2.py deleted file mode 100644 index 92ef206..0000000 --- a/theory_Python/DBN/3-2.py +++ /dev/null @@ -1,29 +0,0 @@ -N, M, K = map(int, input().split()) -data = list(map(int, input().split())) - -data.sort() - -first = data[N-1] -second = data[N-2] -# ans = 0 # 1안 - -# while True: -# for i in range(K): -# if M == 0: -# break -# ans += first -# M -= 1 -# if M == 0: -# break -# ans += second -# M -= 1 -# -# print(ans) - -cnt = int(M/(K+1)) * K # 2안 -cnt += M % (K+1) - -ans = 0 -ans += cnt * first -ans += (M-cnt) * second -print(ans) \ No newline at end of file diff --git a/theory_Python/DBN/3-3.py b/theory_Python/DBN/3-3.py deleted file mode 100644 index df0757b..0000000 --- a/theory_Python/DBN/3-3.py +++ /dev/null @@ -1,7 +0,0 @@ -N, M = map(int, input().split()) -a = [] - -for i in range(N): - data = list(map(int, input().split())) - a.append(min(data)) -print(max(a)) \ No newline at end of file diff --git a/theory_Python/DBN/3-4.py b/theory_Python/DBN/3-4.py deleted file mode 100644 index 9da0834..0000000 --- a/theory_Python/DBN/3-4.py +++ /dev/null @@ -1,14 +0,0 @@ -N, K = map(int, input().split()) -cnt = 0 - -while True: - if N == 1: - break - else: - if N % K == 0: - N = N // K - cnt += 1 - else: - N = N - 1 - cnt += 1 -print(cnt) \ No newline at end of file diff --git a/theory_Python/DBN/4-1.py b/theory_Python/DBN/4-1.py deleted file mode 100644 index 21477fc..0000000 --- a/theory_Python/DBN/4-1.py +++ /dev/null @@ -1,20 +0,0 @@ -T = int(input()) -cmd = input().split() - -x, y = 1, 1 - -dx = [0, 0, -1, 1] -dy = [-1, 1, 0, 0] -move_types = ['L', 'R', 'U', 'D'] - -for plan in cmd: - for i in range(len(move_types)): - if plan == move_types[i]: - move_x = x + dx[i] - move_y = y + dy[i] - - if move_x < 1 or move_y < 1 or move_x> T or move_y> T: - continue - x, y = move_x, move_y - -print(x, y) \ No newline at end of file diff --git a/theory_Python/DBN/4-2.py b/theory_Python/DBN/4-2.py deleted file mode 100644 index 959a6f2..0000000 --- a/theory_Python/DBN/4-2.py +++ /dev/null @@ -1,11 +0,0 @@ -N = int(input()) - -cnt = 0 - -for hour in range(N+1): - for min in range(60): - for sec in range(60): - if '3' in str(hour) + str(min) + str(sec): - cnt += 1 - -print(cnt) diff --git a/theory_Python/DBN/4-3.py b/theory_Python/DBN/4-3.py deleted file mode 100644 index a927b8e..0000000 --- a/theory_Python/DBN/4-3.py +++ /dev/null @@ -1,18 +0,0 @@ -input_data = input() - -row = int(input_data[1]) -col = int(ord(input_data[0])) - int(ord('a')) + 1 - -knight_steps = { - (-2, -1), (-2, 1), (-1, -2), (1, -2), (2, -1), (2, 1), (1, 2), (-1, 2) -} - -ans = 0 - -for step in knight_steps: - n_row = row + step[0] - n_col = col + step[1] - - if n_row>= 1 and n_row <= 8 and n_col>= 1 and n_col<= 8: - ans +=1 -print(ans) \ No newline at end of file diff --git a/theory_Python/DBN/4-4.py b/theory_Python/DBN/4-4.py deleted file mode 100644 index 52fd889..0000000 --- a/theory_Python/DBN/4-4.py +++ /dev/null @@ -1,52 +0,0 @@ -N, M = map(int, input().split()) - -d = [[0] * M for _ in range(N)] - -x, y , di = map(int, input().split()) -d[x][y] = 1 - -array = [] - -for i in range(N): - array.append(list(map(int, input().split()))) - -dx = [-1, 0, 1, 0] -dy = [0, 1, 0, -1] - - -def turn_left(): - global di - di -= 1 - if di == -1: - di = 3 - return di - -cnt = 1 -turn_cnt = 0 - -while True: - turn_left() - nx = x + dx[di] - ny = y + dy[di] - - if d[nx][ny] == 0 and array[nx][ny] == 0: - d[nx][ny] = 1 - x = nx - y = ny - cnt += 1 - turn_cnt = 0 - continue - else: - turn_cnt += 1 - - if turn_cnt == 4: - nx = x - dx[di] - ny = y - dy[di] - - if array[nx][ny] == 0: - x = nx - y = ny - else: - break - turn_cnt = 0 -print(cnt) \ No newline at end of file diff --git a/theory_Python/DBN/5-1.py b/theory_Python/DBN/5-1.py deleted file mode 100644 index f45e62f..0000000 --- a/theory_Python/DBN/5-1.py +++ /dev/null @@ -1,17 +0,0 @@ -# 스택 예제 - -stack = [] - -# 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제 - 삽입(1) - 삽입(4) - 삭제 - -stack.append(5) -stack.append(2) -stack.append(3) -stack.append(7) -stack.pop() -stack.append(1) -stack.append(4) -stack.pop() - -print(stack) -print(stack[::-1]) \ No newline at end of file diff --git "a/theory_Python/DBN/5-10 354円235円221円354円232円251円.py" "b/theory_Python/DBN/5-10 354円235円221円354円232円251円.py" deleted file mode 100644 index f11744e..0000000 --- "a/theory_Python/DBN/5-10 354円235円221円354円232円251円.py" +++ /dev/null @@ -1,31 +0,0 @@ -# 다른 dfs 로 풀기 - -n, m = map(int, input().split()) - -graph = [list(map(int, input())) for _ in range(n)] -visited = [[False] * m for _ in range(n)] -ans = 0 - -dx = [-1, 1, 0, 0] -dy = [0, 0, 1, -1] - - -def dfs(x, y): - visited[x][y] = True - - for i in range(4): - nx = x + dx[i] - ny = y + dy[i] - - if 0 <= nx < n and 0 <= ny < m: - if not visited[nx][ny] and graph[nx][ny] == 0: - dfs(nx, ny) - - -for a in range(n): - for b in range(m): - if graph[a][b] == 0 and not visited[a][b]: - ans += 1 - dfs(a, b) - -print(ans) \ No newline at end of file diff --git a/theory_Python/DBN/5-10.py b/theory_Python/DBN/5-10.py deleted file mode 100644 index c689375..0000000 --- a/theory_Python/DBN/5-10.py +++ /dev/null @@ -1,31 +0,0 @@ -def dfs(x, y): - # 매트릭스의 범위를 벗어나면 즉시 종료 - if x <= -1 or x>= n or y <= -1 or y>= m: - return False - - # 현재의 위치를 방문하지 않았다면 - if graph[x][y] == 0: - graph[x][y] = 1 # 방문 처리를 해준다 - - # 상, 하, 좌, 우의 위치를 모두 재귀적으로 호출 - dfs(x - 1, y) - dfs(x, y - 1) - dfs(x + 1, y) - dfs(x, y + 1) - return True - return False - - -n, m = map(int, input().split()) - -graph = [] -for _ in range(n): - graph.append(list(map(int, input()))) - -cnt = 0 -for a in range(n): # (0,0) 부터 (n, m) 까지 전체 탐색 시작 - for b in range(m): - if dfs(a, b): # 현재의 위치에서 dfs를 실행해서 True가 되면, - cnt += 1 # 카운트 + 1 -print(cnt) - diff --git a/theory_Python/DBN/5-11.py b/theory_Python/DBN/5-11.py deleted file mode 100644 index 4dd399b..0000000 --- a/theory_Python/DBN/5-11.py +++ /dev/null @@ -1,35 +0,0 @@ -# 미로 탈출 -from collections import deque - -n, m = map(int, input().split()) -graph = [list(map(int, input()))] - -dx = [-1, 1, 0, 0] -dy = [0, 0, 1, -1] - - -def bfs(x, y): - queue = deque() - queue.append((x, y)) - - while queue: - x, y = queue.popleft() - - for i in range(4): - nx = x + dx[i] - ny = y + dy[i] - - if nx < 0 or ny < 0 or nx>= n or ny>= m: - continue - - if graph[nx][ny] == 0: - continue - - if graph[nx][ny] == 1: - graph[nx][ny] = graph[x][y] + 1 - queue.append((nx, ny)) - - return graph[n - 1][m - 1] - - -print(bfs(0, 0)) \ No newline at end of file diff --git a/theory_Python/DBN/5-2.py b/theory_Python/DBN/5-2.py deleted file mode 100644 index aeda8c7..0000000 --- a/theory_Python/DBN/5-2.py +++ /dev/null @@ -1,18 +0,0 @@ -from collections import deque - -queue = deque() - -queue.append(5) -queue.append(2) -queue.append(3) -queue.append(7) - -queue.popleft() - -queue.append(1) -queue.append(4) - -queue.popleft() - - -print(list(queue)) \ No newline at end of file diff --git a/theory_Python/DBN/5-4.py b/theory_Python/DBN/5-4.py deleted file mode 100644 index 70011cc..0000000 --- a/theory_Python/DBN/5-4.py +++ /dev/null @@ -1,9 +0,0 @@ -def recursive_function(i): - if i == 100: - return - - print(i, '번째 재귀 함수에서', i+1, '번째 재귀 함수를 호출합니다.') - recursive_function(i+1) - print(i, '번째 재귀 함수를 종료합니다.') - -recursive_function(1) \ No newline at end of file diff --git a/theory_Python/DBN/5-5.py b/theory_Python/DBN/5-5.py deleted file mode 100644 index 0678af0..0000000 --- a/theory_Python/DBN/5-5.py +++ /dev/null @@ -1,19 +0,0 @@ -# 반복적으로 구현한 팩토리얼 n! - -def factorial_iterative(n): - result = 1 - for i in range(1, n+1): - result *= i - return result - - -# 재귀로 구현한 팩토리얼 n! - -def factorial_recursive(n): - if n < 1: - return 1 - return n * factorial_recursive(n - 1) - - -print(factorial_iterative(5)) -print(factorial_recursive(5)) \ No newline at end of file diff --git a/theory_Python/DBN/5-6.py b/theory_Python/DBN/5-6.py deleted file mode 100644 index 30aa730..0000000 --- a/theory_Python/DBN/5-6.py +++ /dev/null @@ -1,11 +0,0 @@ -# 인접 행렬 방식 - -INF = 987654321 - -graph = [ - [0, 7, 5], - [7, 0, INF], - [5, INF, 0] -] - -print(graph) \ No newline at end of file diff --git a/theory_Python/DBN/5-7.py b/theory_Python/DBN/5-7.py deleted file mode 100644 index 10af031..0000000 --- a/theory_Python/DBN/5-7.py +++ /dev/null @@ -1,12 +0,0 @@ -# 인접 리스트 방식 - -graph = [[] for _ in range(3)] - -graph[0].append((1, 7)) -graph[0].append((2, 5)) - -graph[1].append((0, 7)) - -graph[2].append((0, 5)) - -print(graph) \ No newline at end of file diff --git a/theory_Python/DBN/5-8.py b/theory_Python/DBN/5-8.py deleted file mode 100644 index 8e75a20..0000000 --- a/theory_Python/DBN/5-8.py +++ /dev/null @@ -1,31 +0,0 @@ -''' -DFS - 깊이 우선 탐색 -''' -import sys -sys.set - -def dfs(graph, v, visited): - visited[v] = True - print(v, end=' ') - - for i in graph[v]: - if not visited[i]: - dfs(graph, i, visited) - - -graph = [ - [], - [2, 3, 8], - [1, 7], - [1, 4, 5], - [3, 5], - [3, 4], - [7], - [2, 6, 8], - [1, 7] -] - - -visited = [False] * int(len(graph)) - -dfs(graph, 1, visited) \ No newline at end of file diff --git "a/theory_Python/DBN/5-9 354円235円221円354円232円251円.py" "b/theory_Python/DBN/5-9 354円235円221円354円232円251円.py" deleted file mode 100644 index 7b33378..0000000 --- "a/theory_Python/DBN/5-9 354円235円221円354円232円251円.py" +++ /dev/null @@ -1,32 +0,0 @@ -# 인접 리스트 방식으로 구현 - -from collections import deque - -node, edge, start = map(int, input().split()) - -graph = [[] for _ in range(node + 1)] - -for _ in range(edge): - a, b = map(int, input().split()) - graph[a].append(b) - graph[a].sort() - graph[b].append(a) - graph[b].sort() - - -def bfs(graph, start, visited): - visited[start] = True - queue = deque([start]) - - while queue: - v = queue.popleft() - print(v, end=' ') - - for i in graph[v]: - if visited[i] == False: - queue.append(i) - visited[i] = True - -visited = [False] * (node + 1) - -bfs(graph, start, visited) \ No newline at end of file diff --git a/theory_Python/DBN/5-9.py b/theory_Python/DBN/5-9.py deleted file mode 100644 index 1b8786c..0000000 --- a/theory_Python/DBN/5-9.py +++ /dev/null @@ -1,33 +0,0 @@ -# 인접 리스트 방식으로 구현 - -from collections import deque - - -def bfs(graph, start, visited): - queue = deque([start]) - visited[start] = True - while queue: - v = queue.popleft() - print(v, end=' ') - - for i in graph[v]: - if visited[i] == False: - queue.append(i) - visited[i] = True - - -graph = [ - [], - [2, 3, 8], - [1, 7], - [1, 4, 5], - [3, 5], - [3, 4], - [7], - [2, 6, 8], - [1, 7] -] - -visited = [False] * 9 - -bfs(graph, 1, visited) \ No newline at end of file diff --git a/theory_Python/DBN/6-1.py b/theory_Python/DBN/6-1.py deleted file mode 100644 index e3fe17f..0000000 --- a/theory_Python/DBN/6-1.py +++ /dev/null @@ -1,14 +0,0 @@ -# 선택 정렬 O(N^2) - -arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] - -for i in range(len(arr)): - min_index = i # 가장작은 원소의 인덱스 - - for j in range(i + 1, len(arr)): - if arr[min_index]> arr[j]: - min_index = j - - arr[i], arr[min_index] = arr[min_index], arr[i] - -print(arr) diff --git a/theory_Python/DBN/6-2.py b/theory_Python/DBN/6-2.py deleted file mode 100644 index 00ccaf2..0000000 --- a/theory_Python/DBN/6-2.py +++ /dev/null @@ -1,12 +0,0 @@ -# 삽입 정렬 O(N^2) - -arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] - -for i in range(1, len(arr)): - for j in range(i, 0, -1): - if arr[j] < arr[j-1]: - arr[j], arr[j-1] = arr[j-1], arr[j] - else: - break - -print(arr) \ No newline at end of file diff --git "a/theory_Python/DBN/6-3 354円235円221円354円232円251円.py" "b/theory_Python/DBN/6-3 354円235円221円354円232円251円.py" deleted file mode 100644 index 102e2cc..0000000 --- "a/theory_Python/DBN/6-3 354円235円221円354円232円251円.py" +++ /dev/null @@ -1,18 +0,0 @@ -# 파이썬 문법 사용시 단축되는 퀵 솔트 - -arr = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8] - - -def quick_sort(arr): - if len(arr) <= 1: - return arr - - pivot = arr[0] - tail = arr[1:] - - left_side = [x for x in tail if x <= pivot] - right_side = [x for x in tail if x> pivot] - - return quick_sort(left_side) + [pivot] + quick_sort(right_side) - -print(quick_sort(arr)) \ No newline at end of file diff --git a/theory_Python/DBN/6-3.py b/theory_Python/DBN/6-3.py deleted file mode 100644 index 6194649..0000000 --- a/theory_Python/DBN/6-3.py +++ /dev/null @@ -1,31 +0,0 @@ -# 퀵 정렬 소스코드 - -arr = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8] - - -def quick_sort(arr, start, end): - if start>= end: - return - pivot = start - left = start + 1 - right = end - - while left <= right: - while left <= end and arr[left] <= arr[pivot]: - left += 1 - - while right> start and arr[right]>= arr[pivot]: - right -= 1 - - if left> right: - arr[right], arr[pivot] = arr[pivot], arr[right] - else: - arr[left], arr[right] = arr[right], arr[left] - - quick_sort(arr, start, right - 1) - quick_sort(arr, right + 1, end) - - -quick_sort(arr, 0, len(arr) - 1) - -print(arr) \ No newline at end of file diff --git a/theory_Python/DBN/6-4.py b/theory_Python/DBN/6-4.py deleted file mode 100644 index 1ab2756..0000000 --- a/theory_Python/DBN/6-4.py +++ /dev/null @@ -1,13 +0,0 @@ -# 계수 정렬 - -arr = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2] - -cnt = [0] * (len(arr) + 1) - -for i in range(len(arr)): - cnt[arr[i]] += 1 - -for j in range(len(cnt)): - for k in range(cnt[j]): - print(j, end=' ') - \ No newline at end of file diff --git a/theory_Python/DBN/6-5.py b/theory_Python/DBN/6-5.py deleted file mode 100644 index cf0fe8f..0000000 --- a/theory_Python/DBN/6-5.py +++ /dev/null @@ -1,11 +0,0 @@ -n = int(input()) - -arr = [] - -for i in range(n): - arr.append(int(input())) - -arr = sorted(arr, reverse= True) - -for i in arr: - print(i, end=' ') diff --git a/theory_Python/DBN/6-6.py b/theory_Python/DBN/6-6.py deleted file mode 100644 index 89cd4de..0000000 --- a/theory_Python/DBN/6-6.py +++ /dev/null @@ -1,15 +0,0 @@ -# 성적이 낮은 순서로 학생 출력하기 - -n= int(input()) - -arr = [] - -for i in range(n): - input_data = input().split() - arr.append((input_data[0], input_data[1])) - -arr = sorted(arr, key= lambda student: student[1]) # 점수를 정렬 기준으로 삼는다는 뜻 - -for student in arr: - print(student[0], end=' ') - diff --git a/theory_Python/DBN/6-7.py b/theory_Python/DBN/6-7.py deleted file mode 100644 index 0229f17..0000000 --- a/theory_Python/DBN/6-7.py +++ /dev/null @@ -1,19 +0,0 @@ -# 두 배열의 원소 교체 - -N, K = map(int, input().split()) - - -arr_1 = list(map(int, input().split())) -arr_2 = list(map(int, input().split())) - -arr_1.sort() -arr_2.sort(reverse=True) - - -for j in range(K): - if arr_1[j] < arr_2[j]: - arr_1[j], arr_2[j] = arr_2[j], arr_1[j] - else: break - - -print(sum(arr_1)) \ No newline at end of file diff --git a/theory_Python/DBN/7-1.py b/theory_Python/DBN/7-1.py deleted file mode 100644 index c930d38..0000000 --- a/theory_Python/DBN/7-1.py +++ /dev/null @@ -1,19 +0,0 @@ -# 순차 탐색 - - -def seq_search(n, target, arr): - for i in range(n): - if arr[i] == target: - return i + 1 - - -print("생성할 원소 갯수를 입력한 다음 한 칸 띄고 문자열을 입력하세요.") -input_data = input().split() - -n = int(input_data[0]) -target = input_data[1] - -print("앞서 적은 원소 갯수만큼 문자열을 입력하세요.") -arr = input().split() - -print(seq_search(n, target, arr)) \ No newline at end of file diff --git a/theory_Python/DBN/7-2.py b/theory_Python/DBN/7-2.py deleted file mode 100644 index 8f10615..0000000 --- a/theory_Python/DBN/7-2.py +++ /dev/null @@ -1,28 +0,0 @@ -# 재귀를 이용한 바이너리 서치 - - -def binary_search(arr, target, start, end): - if start> end: - return None - mid = (start + end) // 2 - - if arr[mid] == target: - return mid - - elif arr[mid]> target: - return binary_search(arr, target, start, mid-1) - - else: - return binary_search(arr, target, mid+1, end) - - -n, target = map(int, input().split()) -arr = list(map(int, input().split())) - -ans = binary_search(arr, target, 0, n-1) - - -if ans == None: - print('None') -else: - print(ans+1) \ No newline at end of file diff --git a/theory_Python/DBN/7-3.py b/theory_Python/DBN/7-3.py deleted file mode 100644 index 9438011..0000000 --- a/theory_Python/DBN/7-3.py +++ /dev/null @@ -1,29 +0,0 @@ -# 반복을 이용한 바이너리 서치 - - -def binary_search(arr, target, start, end): - while start <= end: - mid = (start + end) // 2 - - if arr[mid] == target: - return mid - - elif arr[mid]> target: - end = end-1 - - else: - start = mid+1 - - return None - - -n, target = map(int, input().split()) -arr = list(map(int, input().split())) - -ans = binary_search(arr, target, 0, n-1) - -if ans == None: - print('None') - -else: - print(ans+1) \ No newline at end of file diff --git "a/theory_Python/DBN/7-4 set()355円225円250円354円210円230円.py" "b/theory_Python/DBN/7-4 set()355円225円250円354円210円230円.py" deleted file mode 100644 index ea2aaa8..0000000 --- "a/theory_Python/DBN/7-4 set()355円225円250円354円210円230円.py" +++ /dev/null @@ -1,11 +0,0 @@ -n = int(input()) -parts = set(map(int, input().split())) -print(parts) -m = int(input()) -order = list(map(int, input().split())) - -for i in order: - if i in parts: - print('yes', end=' ') - else: - print('no', end=' ') \ No newline at end of file diff --git a/theory_Python/DBN/7-4.py b/theory_Python/DBN/7-4.py deleted file mode 100644 index 371bb2a..0000000 --- a/theory_Python/DBN/7-4.py +++ /dev/null @@ -1,30 +0,0 @@ -# 부품 찾기 - -N = int(input()) -parts = list(map(int, input().split())) -parts.sort() - -M = int(input()) -order = list(map(int, input().split())) - - -def binary_search(arr, target, start, end): - while start <= end: - mid = (start + end)//2 - - if arr[mid] == target: - return mid - - elif arr[mid]> target: - end = mid - 1 - - else: - start = mid + 1 - return None - -for i in order: - ans = binary_search(parts, i, 0, N-1) - if ans == None: - print('no', end=' ') - else: - print('yes', end=' ') \ No newline at end of file diff --git a/theory_Python/DBN/7-5.py b/theory_Python/DBN/7-5.py deleted file mode 100644 index 4696088..0000000 --- a/theory_Python/DBN/7-5.py +++ /dev/null @@ -1,24 +0,0 @@ -# 떡볶이 떡 만들기 - -n, m = map(int, input().split()) -ddeok = list(map(int, input().split())) - -start = 0 -end = max(ddeok) - -while start <= end: - total = 0 - mid = (start + end) // 2 - - for x in ddeok: - if x> mid: - total += x - mid - - - if total < m: - end = mid - 1 - else: - result = mid - start = mid + 1 - -print(result) \ No newline at end of file diff --git a/theory_Python/DBN/8-1.py b/theory_Python/DBN/8-1.py deleted file mode 100644 index 72ab955..0000000 --- a/theory_Python/DBN/8-1.py +++ /dev/null @@ -1,6 +0,0 @@ -def fibo(x): - if x == 1 or x == 2: - return 1 - return fibo(x-1) + fibo(x-2) - -print(fibo(4)) \ No newline at end of file diff --git a/theory_Python/DBN/8-2.py b/theory_Python/DBN/8-2.py deleted file mode 100644 index 256d542..0000000 --- a/theory_Python/DBN/8-2.py +++ /dev/null @@ -1,16 +0,0 @@ -# 피보나치 수열 : 탑다운 방식 - -d = [0] * 100 - -def fibo(x): - # 종료 조건 - if x == 1 or x == 2: - return 1 - - if d[x] != 0: - return d[x] - - d[x] = fibo(x-1) + fibo(x-2) - return d[x] - -print(fibo(99)) \ No newline at end of file diff --git a/theory_Python/DBN/8-3.py b/theory_Python/DBN/8-3.py deleted file mode 100644 index 8b50aef..0000000 --- a/theory_Python/DBN/8-3.py +++ /dev/null @@ -1,16 +0,0 @@ -# 호출되는 함수 확인 - -d = [0] * 99 - -def fibo(x): - print('f(' + str(x) + ')', end=' ') - if x == 1 or x == 2: - return 1 - - if d[x] != 0: - return d[x] - - d[x] = fibo(x-1) + fibo(x-2) - return d[x] - -fibo(6) \ No newline at end of file diff --git a/theory_Python/DBN/8-4.py b/theory_Python/DBN/8-4.py deleted file mode 100644 index b4739d4..0000000 --- a/theory_Python/DBN/8-4.py +++ /dev/null @@ -1,11 +0,0 @@ -# 피보나치 수열 : 보텀업 방식 - -d = [0] * 100 - -d[1] = 1 -d[2] = 1 -n = 99 -for i in range(3, n+1): - d[i] = d[i-1] + d[i-2] - -print(d[n]) \ No newline at end of file diff --git a/theory_Python/DBN/8-5.py b/theory_Python/DBN/8-5.py deleted file mode 100644 index e01bb16..0000000 --- a/theory_Python/DBN/8-5.py +++ /dev/null @@ -1,19 +0,0 @@ -# 1로 만들기 - -x = int(input()) - -dp = [0] * 30001 - -for i in range(2, x+1): - dp[i] = dp[i - 1] + 1 - - if i % 2 == 0: - dp[i] = min(dp[i], dp[i // 2] + 1) - - if i % 3 == 0: - dp[i] = min(dp[i], dp[i // 3] + 1) - - if i % 5 == 0: - dp[i] = min(dp[i], dp[i // 5] + 1) - -print(dp[x]) \ No newline at end of file diff --git a/theory_Python/DBN/8-6.py b/theory_Python/DBN/8-6.py deleted file mode 100644 index 0a8f43b..0000000 --- a/theory_Python/DBN/8-6.py +++ /dev/null @@ -1,14 +0,0 @@ -# 개미 전사 - -n = int(input()) -arr = list(map(int, input().split())) - -dp = [0] * 100 - -dp[0] = arr[0] -dp[1] = max(arr[0], arr[1]) - -for i in range(2, n): - dp[i] = max(dp[i-1], dp[i-2] + arr[i]) - -print(dp[n-1]) \ No newline at end of file diff --git a/theory_Python/DBN/8-7.py b/theory_Python/DBN/8-7.py deleted file mode 100644 index 7f811be..0000000 --- a/theory_Python/DBN/8-7.py +++ /dev/null @@ -1,13 +0,0 @@ -# 바닥 공사 -n = int(input()) - -d = [0] * 1001 - -d[1] = 1 -d[2] = 3 - -for i in range(3, n+1): - d[i] = (d[i-1] + d[i-2] * 2) % 796796 - - -print(d[n]) \ No newline at end of file diff --git a/theory_Python/DBN/8-8.py b/theory_Python/DBN/8-8.py deleted file mode 100644 index 4c08dea..0000000 --- a/theory_Python/DBN/8-8.py +++ /dev/null @@ -1,23 +0,0 @@ -# 효율적인 화폐 구성 - -n, m = map(int, input().split()) - -arr = [] - -for _ in range(n): - arr.append(int(input())) - -d = [10001] * (m+1) - -d[0] = 0 - -for i in range(n): - for j in range(arr[i], m+1): - if d[j - arr[i]] != 10001: - d[j] = min(d[j], d[j - arr[i]] + 1) - -if d[m] == 10001: - print(-1) - -else: - print(d[m]) \ No newline at end of file diff --git a/theory_Python/DBN/8-9.py b/theory_Python/DBN/8-9.py deleted file mode 100644 index ca777c7..0000000 --- a/theory_Python/DBN/8-9.py +++ /dev/null @@ -1,36 +0,0 @@ -# 금광 - -for _ in range(int(input())): - n, m = map(int, input().split()) - arr = list(map(int, input().split())) - - dp = [] - idx = 0 - - for i in range(n): - dp.append(arr[idx:idx+m]) - idx += m - - for b in range(1, m): - for a in range(n): - # 왼쪽 위에서 오는경우 - if a == 0: - left_up = 0 - else: - left_up = dp[a-1][b-1] - # 왼쪽 아래에서 오는경우 - if a == n-1: - left_down = 0 - else: - left_down = dp[a+1][b-1] - # 왼쪽에서 오는경우 - left = dp[a][b-1] - - dp[a][b] = dp[a][b] + max(left_up, left_down, left) - - ans = 0 - - for i in range(n): - ans = max(ans, dp[i][m-1]) - - print(ans) diff --git a/theory_Python/DBN/9-1.py b/theory_Python/DBN/9-1.py deleted file mode 100644 index ae6d580..0000000 --- a/theory_Python/DBN/9-1.py +++ /dev/null @@ -1,49 +0,0 @@ -# 간단한 다익스트라 알고리즘 -import sys -input = lambda :sys.stdin.readline().rstrip() -INF = int(1e9) - -n, m = map(int, input().split()) -start = int(input()) -graph = [[] for _ in range(n+1)] -visited = [False] * (n+1) -distance = [INF] * (n+1) - -for i in range(m): - a, b, c = map(int, input().split()) - graph[a].append((b, c)) - - -def get_small_node(): - min_val = INF - idx = 0 - for i in range(1, n+1): - if distance[i] < min_val and not visited[i]: - min_val = distance[i] - idx = i - return idx - - -def dijkstra(start): - distance[start] = 0 - visited[start] = True - for j in graph[start]: - distance[j[0]] = j[1] - - for i in range(n-1): - now = get_small_node() - visited[now] = True - - for j in graph[now]: - cost = distance[now] + j[1] - if cost < distance[j[0]]: - distance[j[0]] = cost - - -dijkstra(start) - -for i in range(1, n+1): - if distance[i] == INF: - print('INF') - else: - print(distance[i]) \ No newline at end of file diff --git a/theory_Python/DBN/9-2.py b/theory_Python/DBN/9-2.py deleted file mode 100644 index 1072568..0000000 --- a/theory_Python/DBN/9-2.py +++ /dev/null @@ -1,40 +0,0 @@ -# 개선된 다익스트라 알고리즘 소스코드 -import sys, heapq -input = lambda : sys.stdin.readline().rstrip() -INF = int(1e9) - -n, m = map(int, input().split()) -start = int(input()) -graph = [[] for _ in range(n+1)] -distance = [INF] * (n+1) - -for _ in range(m): - a, b, c = map(int, input().split()) - graph[a].append((b, c)) - - -def dijkstra(start): - q = [] - heapq.heappush(q, (0, start)) - distance[start] = 0 - while q: - dist, now = heapq.heappop(q) - - if distance[now] < dist: - continue - - for i in graph[now]: - cost = dist + i[1] - - if cost < distance[i[0]]: - distance[i[0]] = cost - heapq.heappush(q, (cost, i[0])) - - -dijkstra(start) - -for i in range(1, n+1): - if distance[i] == INF: - print('INF') - else: - print(distance[i]) \ No newline at end of file diff --git a/theory_Python/DBN/9-3.py b/theory_Python/DBN/9-3.py deleted file mode 100644 index 7222ed0..0000000 --- a/theory_Python/DBN/9-3.py +++ /dev/null @@ -1,31 +0,0 @@ -# 플로이드 워셜 알고리즘 -import sys -input = lambda : sys.stdin.readline().rstrip() - -INF = int(1e9) - -n, m = map(int, input().split()) -graph = [[INF] * (n+1) for _ in range(n+1)] - -for a in range(1, n+1): - for b in range(1, n+1): - if a == b: - graph[a][b] = 0 - -for _ in range(m): - a, b, c = map(int, input().split()) - graph[a][b] = c - -for k in range(1, n+1): - for a in range(1, n+1): - for b in range(1, n+1): - graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) - - -for a in range(1, n+1): - for b in range(1, n+1): - if graph[a][b] == INF: - print('INF', end=' ') - else: - print(graph[a][b], end=' ') - print() diff --git a/theory_Python/DBN/MAXHEAP.py b/theory_Python/DBN/MAXHEAP.py deleted file mode 100644 index 2951ab7..0000000 --- a/theory_Python/DBN/MAXHEAP.py +++ /dev/null @@ -1,16 +0,0 @@ -import heapq - -def heapsort(arr): - h, result = list(), list() - for i in arr: - heapq.heappush(h, -i) - for i in range(len(h)): - result.append(-heapq.heappop(h)) - return result - -result = heapsort([1, 3, 5, 7, 2, 9, 4, 8 ,6, 0]) -print(result) - - -# 힙 자료구조는 데이터를 힙에 넣었다가 꺼내기만 해도 정렬이 된다. -# O(N log N) 의 Time Complexity 보장 \ No newline at end of file diff --git "a/theory_Python/DBN/352円265円254円352円260円204円355円225円251円_355円210円254円355円217円254円354円235円270円355円204円260円.py" "b/theory_Python/DBN/352円265円254円352円260円204円355円225円251円_355円210円254円355円217円254円354円235円270円355円204円260円.py" deleted file mode 100644 index 4148bf3..0000000 --- "a/theory_Python/DBN/352円265円254円352円260円204円355円225円251円_355円210円254円355円217円254円354円235円270円355円204円260円.py" +++ /dev/null @@ -1,12 +0,0 @@ -m = 5 # 구할 합 -arr = [1, 2, 3, 2, 5] # arr값 - -ans, interval_sum, end = 0, 0, 0 -for start in range(len(arr)): - while interval_sum < m and end < len(arr): - interval_sum += arr[end] - end += 1 - if interval_sum == m: ans += 1 - interval_sum -= arr[start] - -print(ans) \ No newline at end of file diff --git "a/theory_Python/DBN/353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円PQ.py" "b/theory_Python/DBN/353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円PQ.py" deleted file mode 100644 index 892ac86..0000000 --- "a/theory_Python/DBN/353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円PQ.py" +++ /dev/null @@ -1,37 +0,0 @@ -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() -INF = 1234567890 - -n, m = map(int, input().split()) -start = int(input()) -graph = [[] for _ in range(n + 1)] -distance = [INF] * (n + 1) - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append((to_, weight)) - - -def dijkstra(start): - queue = list() - heapq.heappush(queue, (0, start)) - distance[start] = 0 - - while queue: - dist, now = heapq.heappop(queue) - - if distance[now] < dist: continue - for i in graph[now]: - cost = dist + i[1] - if cost < distance[i[0]]: - distance[i[0]] = cost - heapq.heappush(queue, (cost, i[0])) - - -dijkstra(start) - -for i in range(1, n + 1): - if distance[i] == INF: - print("INF") - else: - print(distance[i]) \ No newline at end of file diff --git a/theory_Python/Do it Python/01.slicing.py b/theory_Python/Do it Python/01.slicing.py deleted file mode 100644 index 8d65282..0000000 --- a/theory_Python/Do it Python/01.slicing.py +++ /dev/null @@ -1,12 +0,0 @@ -a = "Life is too short, You need Python" -b = a[0]+a[1]+a[2]+a[3] -print(b) -print() -print(a[0:4]) # 0<=a<4 -print() -print(a[19:]) -print() -a = "Pithon" -print(a) -b = a[:1]+"y"+a[2:] -print(b) \ No newline at end of file diff --git a/theory_Python/Do it Python/02.formatting.py b/theory_Python/Do it Python/02.formatting.py deleted file mode 100644 index ec5c4cf..0000000 --- a/theory_Python/Do it Python/02.formatting.py +++ /dev/null @@ -1,30 +0,0 @@ -a = ("I eat %d apples." %3) -print(a) -print() -b = ("I eat %s apples." %"five") -print(b) -print() -num = 5 -c = ("I eat %d apples." %num) -print(c) -print() -number = 10 -day = "three" -d = ("I ate %d apples. so i was sick for %s days." %(number,day)) -print(d) -print() -e = ("I have %s apples." %3) -f = ("Rate is %s." %3.234) -print(e) -print(f) -print() -a = ("Error is %d%%" %98) -print(a) -print(a.find('i')) -print(a.find('z')) -print() -b = "Life is too short" -print(b.split()) -c = "a:b:c:d" -print(c.split(':')) -print() diff --git "a/theory_Python/SSAFY/352円260円200円354円236円245円352円270円264円354円246円235円352円260円200円355円225円230円353円212円224円353円266円200円353円266円204円354円210円230円354円227円264円.py" "b/theory_Python/SSAFY/352円260円200円354円236円245円352円270円264円354円246円235円352円260円200円355円225円230円353円212円224円353円266円200円353円266円204円354円210円230円354円227円264円.py" deleted file mode 100644 index 1d3a528..0000000 --- "a/theory_Python/SSAFY/352円260円200円354円236円245円352円270円264円354円246円235円352円260円200円355円225円230円353円212円224円353円266円200円353円266円204円354円210円230円354円227円264円.py" +++ /dev/null @@ -1,21 +0,0 @@ -# LIS는 Longest Increasing Subsequence 의 약자 -# 어떤 수열에서 특정 부분을 지워서 만들어 낼 수 있는 증가 부분 수열이다. -# 부분수열의 숫자들은 원 배열에서 위치가 이어져 있지 않아도 된다는 특징이 있다. -# LIS는 보통 순증가하는 부분 수열을 대상으로 한다. -# 예를 들어 [1, 4, 6, 8, 3, 5, 6, 7]일 때, [1, 6, 8], [4, 6, 8], -# [1, 7]은 증가 부분 수열인데 이중 가장 긴 부분 열은 [1, 3, 5, 6, 7]이된다. -# 이때 중간의 4, 6, 8 등은 생략한 것을 알 수 있다. - - -def LIS(arr): - if not arr: - return 0 - - ans = 1 - for i in range(len(arr)): - nxt = list() - for j in range(i + 1, len(arr)): - if arr[i] < arr[j]: - nxt.append(arr[j]) - ans = max(ans, 1 + LIS(nxt)) - return ans \ No newline at end of file diff --git "a/theory_Python/SSAFY/353円257円274円352円266円214円354円230円250円353円235円274円354円235円270円354円240円200円354円247円200円_1.py" "b/theory_Python/SSAFY/353円257円274円352円266円214円354円230円250円353円235円274円354円235円270円354円240円200円354円247円200円_1.py" deleted file mode 100644 index 2ee9ab7..0000000 --- "a/theory_Python/SSAFY/353円257円274円352円266円214円354円230円250円353円235円274円354円235円270円354円240円200円354円247円200円_1.py" +++ /dev/null @@ -1,27 +0,0 @@ -# 사나운 초코 -import sys -input = lambda : sys.stdin.readline().rstrip() - -n, c = map(int, input().split()) -arr = sorted([int(input()) for _ in range(n)]) - -start = 0 -end = max(arr) - -while start <= end: - cnt = 1 - value = arr[0] - mid = (start + end) // 2 - - for i in range(n): - if arr[i]>= value + mid: - value = arr[i] - cnt += 1 - - if cnt>= c: - start = mid + 1 - ans = mid - else: - end = mid -1 - -print(ans) \ No newline at end of file diff --git "a/theory_Python/SSAFY/353円257円274円352円266円214円354円230円250円353円235円274円354円235円270円354円240円200円354円247円200円_2.py" "b/theory_Python/SSAFY/353円257円274円352円266円214円354円230円250円353円235円274円354円235円270円354円240円200円354円247円200円_2.py" deleted file mode 100644 index 5d5d761..0000000 --- "a/theory_Python/SSAFY/353円257円274円352円266円214円354円230円250円353円235円274円354円235円270円354円240円200円354円247円200円_2.py" +++ /dev/null @@ -1,29 +0,0 @@ -# 퇴장하는 순서 -import sys -input = lambda :sys.stdin.readline().rstrip() - -INF = int(1e9) -n, k = map(int, input().split()) -path = [[INF] * (n) for _ in range(n)] - -for i in range(k): - from_, to_ = map(int, input().split()) - path[from_ - 1][to_ - 1] = 1 - -for k in range(n): # 플로이드 와샬을 통해서 그래프간 연결을 확인 할 수 있으면 거리를 1로 바꿔줌 - for i in range(n): - for j in range(n): - if i == j: continue - if path[i][k] == 1 and path[k][j] == 1: - path[i][j] = 1 - -# print(path) -cnt = [0] * n -for i in range(n): - for j in range(n): # 거쳐가는 노드들을 전부 카운트 해보는중 - if path[i][j] == 1: # i에서 j로 이동할 수 있으면 cnt에 i번째와 j번째 column 증가 - cnt[i] += 1 - cnt[j] += 1 - -# print(answer) -print(cnt.count(n - 1)) \ No newline at end of file diff --git "a/theory_Python/SSAFY/354円232円260円354円204円240円354円210円234円354円234円204円355円201円220円353円245円274円354円235円264円354円232円251円355円225円234円353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円.py" "b/theory_Python/SSAFY/354円232円260円354円204円240円354円210円234円354円234円204円355円201円220円353円245円274円354円235円264円354円232円251円355円225円234円353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円.py" deleted file mode 100644 index f625878..0000000 --- "a/theory_Python/SSAFY/354円232円260円354円204円240円354円210円234円354円234円204円355円201円220円353円245円274円354円235円264円354円232円251円355円225円234円353円213円244円354円235円265円354円212円244円355円212円270円353円235円274円.py" +++ /dev/null @@ -1,37 +0,0 @@ -# 백준 1753 최단경로>> 다익스트라 함수로 파생되는 최단거리 구하는 문제 무조건 풀자 -import heapq, sys -input = lambda :sys.stdin.readline().rstrip() - -INF = int(1e9) -n, m = map(int, input().split()) -start = int(input()) - -graph = [[] for _ in range(n + 1)] -distance = [INF] * (n + 1) - -for _ in range(m): - from_, to_, weight = map(int, input().split()) - graph[from_].append([weight, to_]) - - -def dijikstra(start): - queue = list() - heapq.heappush(queue, (0, start)) # cost, current - distance[start] = 0 - - while queue: - cost, current = heapq.heappop(queue) - if distance[current] < cost: continue - for i in graph[current]: - cost2 = cost + i[0] - if cost2 < distance[i[1]]: - distance[i[1]] = cost2 - heapq.heappush(queue, (cost2, i[1])) - - -dijikstra(start) -for i in range(1, n + 1): - if distance[i] == INF: - print("INF") - else: - print(distance[i]) \ No newline at end of file diff --git "a/theory_Python/SSAFY/354円234円240円353円213円210円354円230円250円355円214円214円354円235円270円353円223円234円.py" "b/theory_Python/SSAFY/354円234円240円353円213円210円354円230円250円355円214円214円354円235円270円353円223円234円.py" deleted file mode 100644 index f45fb91..0000000 --- "a/theory_Python/SSAFY/354円234円240円353円213円210円354円230円250円355円214円214円354円235円270円353円223円234円.py" +++ /dev/null @@ -1,31 +0,0 @@ -n = int(input()) - -parent = [0] * n # make set -for i in range(n): - parent[i] = i -print(parent) - -def find(x): # find set - if parent[x] == x: return x - parent[x] = find(parent[x]) - return parent[x] - - -def union(a, b): # union set - a = find(a) - b = find(b) - if a == b: return False - parent[b] = a - return True - - -union(0, 1) -print(parent) -union(1, 2) -print(parent) -union(3, 4) -print(parent) -union(0, 2) -print(parent) -union(0, 4) -print(parent) \ No newline at end of file diff --git "a/theory_Python/SSAFY/355円201円254円353円243円250円354円212円244円354円271円274円.py" "b/theory_Python/SSAFY/355円201円254円353円243円250円354円212円244円354円271円274円.py" deleted file mode 100644 index 1921b4b..0000000 --- "a/theory_Python/SSAFY/355円201円254円353円243円250円354円212円244円354円271円274円.py" +++ /dev/null @@ -1,58 +0,0 @@ -v, e = map(int, input().split()) - -edgeList = list() -ans = 0 - -for i in range(e): - from_, to_, weight = map(int, input().split()) - edgeList.append((weight, from_, to_)) - -edgeList.sort() # weight 기준 정렬됨 - -parent = [0] * v # make set -for i in range(v): - parent[i] = i - - -def find(x): # find set - if parent[x] == x: return x - parent[x] = find(parent[x]) - return parent[x] - - -def union(a, b): # union set - a = find(a) - b = find(b) - if a < b: - parent[b] = a - else: - parent[a] = b - - -for edge in edgeList: - cost, a, b = edge - if find(a) != find(b): - union(a, b) - ans += cost - -print(ans) - -# 7 16 -# 5 3 18 -# 1 2 21 -# 2 6 25 -# 0 2 31 -# 0 1 32 -# 3 4 34 -# 5 4 40 -# 2 4 46 -# 0 6 51 -# 4 6 51 -# 0 5 60 -# 5 3 18 -# 1 2 21 -# 2 6 25 -# 0 2 31 -# 3 4 34 - -# 175 diff --git "a/theory_Python/SSAFY/355円224円204円353円246円274円.py" "b/theory_Python/SSAFY/355円224円204円353円246円274円.py" deleted file mode 100644 index 4e00f13..0000000 --- "a/theory_Python/SSAFY/355円224円204円353円246円274円.py" +++ /dev/null @@ -1,31 +0,0 @@ -n = int(input()) -graph = [list(map(int, input().split())) for _ in range(n)] -visited = [False] * n -edgeList = [int(1e9)] * n -ans = 0 -edgeList[0] = 0 - -for i in range(n): - min = int(1e9) - minVertex = 0 - - for a in range(n): - if not visited[a] and min> edgeList[i]: - min = edgeList[i] - minVertex = i - - ans += min - visited[minVertex] = True - - for b in range(n): - if not visited[b] and graph[minVertex][b] != 0 and edgeList[b]> graph[minVertex][b]: - edgeList[b] = graph[minVertex][b] - -print(ans) - -# 5 -# 0 5 10 15 30 -# 5 0 7 12 20 -# 10 7 0 0 0 -# 15 12 0 0 0 -# 30 20 0 0 0 \ No newline at end of file diff --git "a/theory_Python/SSAFY/355円224円214円353円241円234円354円235円264円353円223円234円354円233円214円354円205円234円.py" "b/theory_Python/SSAFY/355円224円214円353円241円234円354円235円264円353円223円234円354円233円214円354円205円234円.py" deleted file mode 100644 index 840702f..0000000 --- "a/theory_Python/SSAFY/355円224円214円353円241円234円354円235円264円353円223円234円354円233円214円354円205円234円.py" +++ /dev/null @@ -1,26 +0,0 @@ -INF = int(1e9) -n, m = map(int, input().split()) -graph = [[INF] * (n + 1) for _ in range(n + 1)] - -for a in range(1, n + 1): - for b in range(1, n + 1): - if a == b: - graph[a][b] = 0 - -for _ in range(m): - a, b, c = map(int, input().split()) - graph[a][b] = c - -for k in range(1, n + 1): - for a in range(1, n + 1): - for b in range(1, n + 1): - graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) - - -for a in range(1, n + 1): - for b in range(1, n + 1): - if graph[a][b] == INF: - print("INF", end=' ') - else: - print(graph[a][b], end=' ') - print() \ No newline at end of file diff --git a/theory_Python/Youtube/.DS_Store b/theory_Python/Youtube/.DS_Store deleted file mode 100644 index 38af5be..0000000 Binary files a/theory_Python/Youtube/.DS_Store and /dev/null differ diff --git "a/theory_Python/Youtube/01. 353円213円250円354円210円234円355円203円220円354円203円211円.py" "b/theory_Python/Youtube/01. 353円213円250円354円210円234円355円203円220円354円203円211円.py" deleted file mode 100644 index c57ea6f..0000000 --- "a/theory_Python/Youtube/01. 353円213円250円354円210円234円355円203円220円354円203円211円.py" +++ /dev/null @@ -1,26 +0,0 @@ -''' -단순탐색(Simple Search) -* 앞에서부터 원하는게 나올 때까지 하나하나 찾는다 - -장점 -1. 만들기 쉽다. -2. 정렬이 안되어 있어도 된다 - -단점 -1. 느리다. -2. 10억개를 탐색할때, 최대 10억번 연산 O(n) - -대안 -* 이진탐색(Binary Search) O(log n) -''' -#Q.8은 몇번째에 있을까? - -arr = [1,2,3,5,6,7,8,9,10,11] -def simpleSearch(arr, targetNum): - for index in range(0, len(arr)): - if targetNum == arr[index]: - return index - return -1 - - -print(simpleSearch(arr, 8)) \ No newline at end of file diff --git "a/theory_Python/Youtube/02. 354円235円264円354円247円204円355円203円220円354円203円211円.py" "b/theory_Python/Youtube/02. 354円235円264円354円247円204円355円203円220円354円203円211円.py" deleted file mode 100644 index 6f46420..0000000 --- "a/theory_Python/Youtube/02. 354円235円264円354円247円204円355円203円220円354円203円211円.py" +++ /dev/null @@ -1,41 +0,0 @@ -''' -# 이진탐색(binary search) -탐색 범위를 절반씩 줄여나가면서 찾는다 -Youtube : https://www.youtube.com/watch?v=Q8uUOMY5Hec&list=PLAdQRRy4vtQRwAGymS3q3VXk1WUfhZg7l&index=19 - -# 장점 -1. 빠르다 O(log n) -2. 실제로 쓰인다. - -# 단점 -1. 정렬이 되어 있어야 한다. -2. 만들기 어렵다. - -# 핵심로직 -중간 인덱스값을 구한다. -10억 -> 5억 -5억 -> 2.5억 -범위가 절반씩 줄어든다. -''' -arr = [1,2,3,5,6,7,8,9,10,11] - - -def binarySearch(arr, targetNumber): - start = 0 - end = len(arr) - 1 - - while (start <= end): - midIndex = (start + end) // 2 - print(midIndex, arr[midIndex]) - - if arr[midIndex]> targetNumber: - end = midIndex - 1 - elif arr[midIndex] < targetNumber: - start = midIndex + 1 - else: - print() - return midIndex - return -1 - - -print('result : ',binarySearch(arr, 8)) \ No newline at end of file diff --git "a/theory_Python/Youtube/03. 353円262円204円353円270円224円354円240円225円353円240円254円.py" "b/theory_Python/Youtube/03. 353円262円204円353円270円224円354円240円225円353円240円254円.py" deleted file mode 100644 index 5feca04..0000000 --- "a/theory_Python/Youtube/03. 353円262円204円353円270円224円354円240円225円353円240円254円.py" +++ /dev/null @@ -1,22 +0,0 @@ -''' -알고리즘에서 가장 첫번째로 나오는 알고리즘 -거품이 물에서 떠오르는 모양 - -핵심로직 : -첫번째거랑 두번째꺼랑 비교해서 두번째께 더 작으면 첫번째거랑 자리를 바꾼다. -''' - -arr = [6, 5, 4, 3, 2, 1, 7, 9, 10, 8] -print(arr) - - -def bubbleSort(arr): - for i in range(0, len(arr)-1): - for j in range(0, len(arr)-i-1): - if arr[j]> arr[j+1]: - arr[j], arr[j+1] = arr[j+1], arr[j] - print(arr) - return arr - - -print('결과 : ', bubbleSort(arr)) \ No newline at end of file diff --git "a/theory_Python/Youtube/06. BFS - 354円265円234円353円213円250円352円262円275円353円241円234円.py" "b/theory_Python/Youtube/06. BFS - 354円265円234円353円213円250円352円262円275円353円241円234円.py" deleted file mode 100644 index fe93367..0000000 --- "a/theory_Python/Youtube/06. BFS - 354円265円234円353円213円250円352円262円275円353円241円234円.py" +++ /dev/null @@ -1,32 +0,0 @@ -import queue - -adj = { # 입력 그래프 - 'a':['b', 'c'], - 'b':['a', 'd', 'e'], - 'c':['a', 'e'], - 'd':['b'], - 'e':['b', 'c', 'f'], - 'f':['e', 'g'], - 'g':['f', 'h'], - 'h':['g'] - } - - -def bfs(adj, start): # adj 입력 그래프, start 탐색 시작할 노드 - visited = set() # 어떤 정점을 방문했는지 표시하기위해 visited 를 집합으로 표시 - tovisit = queue.Queue() # 방문예정목록을 queue로 관리 - tovisit.put(start) # 시작 정점 start를 tovisit 맨 처음에 넣어줌 - - while not tovisit.empty(): # 방문예정목록이 빌때까지 정점 방문을 계속한다 - u = tovisit.get() # 방문예정목록에서 노드를 하나 꺼내 u 에 넣습니다. - if u in visited: # 정점 u를 이미 방문했다면 무시한다 - continue - visited.add(u) # 집합 visited에 노드 u를 넣어서 u가 이미 방문한 노드임을 나타낸다 - print("visit : ",u) - - for v in adj[u]: # 노드 u의 이웃 노드중에 아직 방문하지 않은 노드를 방문예정목록에 넣어준다 - if v not in visited: - tovisit.put(v) - - -print(bfs(adj, 'a')) \ No newline at end of file diff --git "a/theory_Python/Youtube/07.354円232円260円354円204円240円354円210円234円354円234円204円 355円201円220円.py" "b/theory_Python/Youtube/07.354円232円260円354円204円240円354円210円234円354円234円204円 355円201円220円.py" deleted file mode 100644 index d788fd7..0000000 --- "a/theory_Python/Youtube/07.354円232円260円354円204円240円354円210円234円354円234円204円 355円201円220円.py" +++ /dev/null @@ -1,13 +0,0 @@ -import heapq - -arr = [] -heapq.heappush(arr, 1) -heapq.heappush(arr, 10) -heapq.heappush(arr, 2) -heapq.heappush(arr, 9) -heapq.heappush(arr, 4) -heapq.heappush(arr, 5) -print(arr) - -while arr: - print(heapq.heappop(arr)) \ No newline at end of file diff --git "a/theory_Python/Youtube/08. 354円212円254円353円235円274円354円235円264円353円224円251円 354円234円210円353円217円204円354円232円260円.py" "b/theory_Python/Youtube/08. 354円212円254円353円235円274円354円235円264円353円224円251円 354円234円210円353円217円204円354円232円260円.py" deleted file mode 100644 index 786a1d0..0000000 --- "a/theory_Python/Youtube/08. 354円212円254円353円235円274円354円235円264円353円224円251円 354円234円210円353円217円204円354円232円260円.py" +++ /dev/null @@ -1,12 +0,0 @@ -# 슬라이딩 윈도우 -arr = [2, 4, 7, 10, 8, 4] -window_size = 3 - -window_sum, max_sum, start = 0, 0, 0 -for end in range(len(arr)): - window_sum += arr[end] - if end>= (window_size - 1): - max_sum = max(max_sum, window_sum) - window_sum -= arr[start] - start += 1 -print(max_sum) \ No newline at end of file diff --git "a/353円262円204円353円270円224円354円240円225円353円240円254円.py" "b/353円262円204円353円270円224円354円240円225円353円240円254円.py" new file mode 100644 index 0000000..25dc0e1 --- /dev/null +++ "b/353円262円204円353円270円224円354円240円225円353円240円254円.py" @@ -0,0 +1,8 @@ +list = [6, 5, 4, 3, 2, 1] +print(list) + +for i in range(0, len(list)-1): + for j in range(0, len(list)-1-i): + list[j], list[j+1] = list[j+1], list[j] + +print(list) \ No newline at end of file diff --git "a/354円236円220円353円243円214円352円265円254円354円241円260円 1354円235円274円354円260円250円.py" "b/354円236円220円353円243円214円352円265円254円354円241円260円 1354円235円274円354円260円250円.py" new file mode 100644 index 0000000..8693820 --- /dev/null +++ "b/354円236円220円353円243円214円352円265円254円354円241円260円 1354円235円274円354円260円250円.py" @@ -0,0 +1,53 @@ +## Day 1 + +# L = ['Bob', 'Steve', 'Sap'] +# print(L) +# print(type(L)) +# +# L.append('New') +# print(L) +# +# L.pop() +# print(L) + +# K = [20, 37, 45, 72, 96, 102] +# print(K) +# K.insert(3, 99) +# print(K) +# del(K[2]) +# print(K) + +# L = ['Bob', 'Steve', 'Sap'] +# print(L.index('Sap')) +# +# for i in range(len(L)): +# print(L[i], end=' ') + +# def solution(L, x): +# for i in range(len(L)-1): +# if L[i] <= x: +# if x <= L[i+1]: +# L.insert(i+1, x) +# break +# else: +# L.insert(0, x) +# break +# answer = L +# return L +# +# L = [2, 3, 6, 9, 16, 25, 36, 49, 64, 81, 100] +# x = int(input('X value : ')) +# print(solution(L, x)) + +def solution(L, x): + idx = [] + for i in range(len(L)): + if L[i] == x: + idx.append(i) + if len(idx) == 0: + idx.append(-1) + return idx + +L = [4, 9, 16, 25, 36, 49, 64, 81] +x = int(input('X value : ')) +print(solution(L, x)) \ No newline at end of file diff --git "a/354円236円220円353円243円214円352円265円254円354円241円260円 2354円235円274円354円260円250円.py" "b/354円236円220円353円243円214円352円265円254円354円241円260円 2354円235円274円354円260円250円.py" new file mode 100644 index 0000000..e60285f --- /dev/null +++ "b/354円236円220円353円243円214円352円265円254円354円241円260円 2354円235円274円354円260円250円.py" @@ -0,0 +1,42 @@ +## Day 2 + +# L = [3, 8, 2, 16, 1, 49] +# L.sort() +# print(L) + +# L.sort(reverse=1) +# print(L) + +# def linear_search(L, x): # O(n) +# i = 0 +# while i < len(L) and L[i] != x: +# i += 1 +# if i < len(L): +# return i +# else: +# return -1 +# +# L = [3, 8, 2, 16, 1, 49] +# x = int(input('X value : ')) +# print(linear_search(L, x)) + +def binary_search(L, x): # O(logn) + lower = 0 + upper = len(L)-1 + idx = -1 + + while lower <= upper: + middle = (lower + upper)//2 + if L[middle] == x: + idx = middle + break + elif L[middle] < x: + lower = middle + 1 + else: + upper = middle - 1 + + return idx + +L = [3, 8, 2, 16, 1, 49] +x = int(input('X value : ')) +print(binary_search(L, x)) \ No newline at end of file diff --git "a/354円236円220円353円243円214円352円265円254円354円241円260円 3354円235円274円354円260円250円.py" "b/354円236円220円353円243円214円352円265円254円354円241円260円 3354円235円274円354円260円250円.py" new file mode 100644 index 0000000..3b40a16 --- /dev/null +++ "b/354円236円220円353円243円214円352円265円254円354円241円260円 3354円235円274円354円260円250円.py" @@ -0,0 +1,141 @@ +## Day 3 + +# def recursive_sum(n): +# print(n) +# if n <= 1: +# return n +# else: +# return n+sum(n-1) +# +# a = int(input('Write the Number : ')) +# print(recursive_sum(a)) + +''' +만약 if로 1 이하의 경우를 브레이크 걸지 않으면 음수까지 계속 진행함 +''' + +# def iteration_sum(n): +# sum = 0 +# while n>= 0: +# print(n) +# sum += n +# n -= 1 +# +# return sum +# +# a = int(input('Write the Number : ')) +# print(iteration_sum(a)) + +''' +둘다 복잡도는 O(n)으로 같으나 +Efficiency는 Recursive가 더 좋다. +''' + +# def sum(n): +# return n*(n+1) // 2 +# +# a = int(input('Write the Number : ')) +# print(sum(a)) + +''' +이 방법이 O(1)로 가장 빠름 +''' + +# def factorial(n): +# print(n) +# if n <= 1: +# return 1 +# else: +# return n * factorial(n-1) +# +# a = int(input('Write the Number : ')) +# print(factorial(a)) + + +# def fibonacci(n): +# result = 0 +# F0 = 0 +# F1 = 1 +# if n == 0: +# result = F0 +# elif n == 1: +# result = F1 +# elif n> 1: +# result = fibonacci(n-1) + fibonacci(n-2) +# return result +# +# a = int(input('Write the Number : ')) +# print(fibonacci(a)) + +# def iteration_fibonacci(n): +# if n <= 1: +# return n +# else: +# i = 2 +# t0 = 0 +# t1 = 1 +# +# while i <= n: +# t0, t1 = t1, t0+t1 +# i += 1 +# return t1 +# +# a = int(input('Write the Number : ')) +# print(iteration_fibonacci(a)) + +''' +피보나치의 수열 또한 재귀함수로 구현이 가능하다 +''' + +# def factorial(n): +# +# if n <= 1: +# return 1 +# else: +# return n * factorial(n-1) +# +# def combi(n, m): +# return factorial(n) / (factorial(b) * factorial(n-m)) +# +# a = int(input('Write the Number1 : ')) +# b = int(input('Write the Number2 : ')) +# print(combi(a, b)) + +''' +조합의 수 계산도 재귀함수로 구현이 가능하다 +위의 문제 : n개의 서로 다른 원소에서 m개를 택하는 경우의 +''' + +def solution(L, x, start, end): + if end < start: + return -1 + + mid = (start + end)//2 + + if x == L[mid]: + return mid + elif x < L[mid]: + return solution(L, x, start, mid-1) + else: + return solution(L, x, mid+1, end) + +L = [4, 9, 16, 25, 36, 49, 64, 81] +x = int(input('Find num : ')) +start = int(input('From : ')) +end = int(input('To : ')) +print('The result idx is', solution(L, x, start, end)) + +''' +리스트 L과, 그 안에서 찾으려는 원소 x가 인자로 주어지고, +또한 탐색의 대상이 되는 리스트 내에서의 범위 인덱스가 l부터 u까지로 정해질 때, +x와 같은 값을 가지는 원소의 인덱스를 리턴하는 함수 solution()을 완성하시오. + +만약 리스트 L 안에서 x와 같은 값을 가지는 원소가 존재하지 않을 경우에는 -1을 리턴합니다. +리스트 L은 자연수 원소들로 이루어져 있으며, 크기 순으로 정렬되어 있다고 가정한다. +또한, 동일한 원소는 2번 이상 나타나지 않습니다. + +인덱스 범위를 나타내는 l과 u가 인자로 주어지는 이유는, 이 함수를 재귀적인 방법으로 +구현하기 위함입니다. + +빈 칸에 알맞은 내용을 채워서 재귀 함수인 solution()을 완성하세요. +''' \ No newline at end of file diff --git "a/theory_Python/Youtube/04. 354円236円254円352円267円200円.py" "b/354円236円254円352円267円200円.py" similarity index 73% rename from "theory_Python/Youtube/04. 354円236円254円352円267円200円.py" rename to "354円236円254円352円267円200円.py" index 6bb2293..dea6b62 100644 --- "a/theory_Python/Youtube/04. 354円236円254円352円267円200円.py" +++ "b/354円236円254円352円267円200円.py" @@ -1,12 +1,12 @@ -def sum(n): - print(n) - if n <= 1: - return n - else: - return n + sum(n-1) - -n = int(input()) -print('result : ', sum(n)) +# def sum(n): +# print(n) +# if n <= 1: +# return n +# else: +# return n + sum(n-1) +# +# n = int(input()) +# print('result : ', sum(n)) # def pac(n): # print(n, end=' ') diff --git "a/theory_Python/Youtube/05. 354円236円254円352円267円200円-355円225円230円353円205円270円354円235円264円354円235円230円355円203円221円.py" "b/355円225円230円353円205円270円354円235円264円354円235円230円355円203円221円.py" similarity index 100% rename from "theory_Python/Youtube/05. 354円236円254円352円267円200円-355円225円230円353円205円270円354円235円264円354円235円230円355円203円221円.py" rename to "355円225円230円353円205円270円354円235円264円354円235円230円355円203円221円.py"

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