From b0560bd803556d24380b923a8ab8ab94876ce67f Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Wed, 13 Apr 2022 23:46:24 +0900 Subject: [PATCH 01/17] 220413_solve : P10989_kim --- 0414/BOJ/P10989/P10989_kim.java | 36 ++++++++++++++++++++++++++++++++ 0414/BOJ/P11050/P11050_kim.java | 27 ++++++++++++++++++++++++ 0414/BOJ/P11650/P11650_kim.java | 37 +++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 0414/BOJ/P10989/P10989_kim.java create mode 100644 0414/BOJ/P11050/P11050_kim.java create mode 100644 0414/BOJ/P11650/P11650_kim.java diff --git a/0414/BOJ/P10989/P10989_kim.java b/0414/BOJ/P10989/P10989_kim.java new file mode 100644 index 0000000..dd02a98 --- /dev/null +++ b/0414/BOJ/P10989/P10989_kim.java @@ -0,0 +1,36 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; + +public class swea_10989_수정렬2 { + public static void main(String[] args) throws NumberFormatException, IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringBuilder sb = new StringBuilder(); + 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[] count = new int[10001]; // 최대가 10000이라 10001로 배열 생성 + for(int i = 0; i < arr.length; i++) { + count[arr[i]]++; + } + + //누적 합 구하기 + for(int i = 1; i < count.length; i++) { + count[i] += count[i-1]; + } + + int[] ans = new int[n]; + for(int i = n-1; i >=0; i--) { + ans[--count[arr[i]]] = arr[i]; + } + + for(int i = 0; i < ans.length; i++) { + sb.append(ans[i]).append("\n"); + } + + System.out.println(sb.toString()); + } +} diff --git a/0414/BOJ/P11050/P11050_kim.java b/0414/BOJ/P11050/P11050_kim.java new file mode 100644 index 0000000..867ce92 --- /dev/null +++ b/0414/BOJ/P11050/P11050_kim.java @@ -0,0 +1,27 @@ +import java.util.Scanner; + +public class swea_11050_이항계수 { + public static int num = 0; + public static void main(String[] args) { + //자연수 n과 정수 k가 주어졌을 때 이항 계수 구하기. + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + int k = sc.nextInt(); + comb(n,k); // nCk = n-1Ck-1 + n-1Ck + System.out.println(num); + } + + private static void comb(int n, int k) { + if(k == 0) { + num++; + return; + }else if(n < k) { + return; + }else { + comb(n-1, k-1); // k를 뽑고가고 + comb(n-1, k); // k를 안뽑고가고 + } + + } + +} diff --git a/0414/BOJ/P11650/P11650_kim.java b/0414/BOJ/P11650/P11650_kim.java new file mode 100644 index 0000000..a23d0c1 --- /dev/null +++ b/0414/BOJ/P11650/P11650_kim.java @@ -0,0 +1,37 @@ +package study0414; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.Scanner; + +public class swea_11650_좌표정렬 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + int[][] map = new int[n][2]; //[0] : x좌표 , [1] : y좌표 + for(int i = 0; i < n; i++) { + for(int j = 0; j < 2; j++) { + map[i][j] = sc.nextInt(); + } + } + + // x 좌표 오름차순 정렬 (만약 x 좌표가 같다면 y좌표 오름차순 정렬) + Arrays.sort(map, new Comparator() { + public int compare(int[] o1, int[] o2) { + if(o1[0]==o2[0]) { + return o1[1]-o2[1]; + }else { + return o1[0] - o2[0]; + } + } + }); + + for(int i = 0; i < map.length; i++) { + for(int j = 0; j < 2; j++) { + System.out.print(map[i][j]+" "); + } + System.out.println(); + } + } + +} From f4b0c57c5e3dd9ac15b7086beaf2b4e095ebd7f1 Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Tue, 19 Apr 2022 16:38:52 +0900 Subject: [PATCH 02/17] 220419_solve : P11651_kim --- 0419/BOJ/P11651/P11651_kim.java | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 0419/BOJ/P11651/P11651_kim.java diff --git a/0419/BOJ/P11651/P11651_kim.java b/0419/BOJ/P11651/P11651_kim.java new file mode 100644 index 0000000..59f8392 --- /dev/null +++ b/0419/BOJ/P11651/P11651_kim.java @@ -0,0 +1,34 @@ +import java.util.Arrays; +import java.util.Comparator; +import java.util.Scanner; + +public class swea_P11651_좌표정렬하기2 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + int[][] map = new int[n][2]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < 2; j++) { + map[i][j] = sc.nextInt(); + } + } + Arrays.sort(map, new Comparator() { + public int compare(int[] o1, int[] o2) { + if (o1[1] == o2[1]) { + return o1[0] - o2[0]; + } else { + return o1[1] - o2[1]; + } + } + + }); + + for (int i = 0; i < map.length; i++) { + for (int j = 0; j < 2; j++) { + System.out.print(map[i][j] + " "); + } + System.out.println(); + } + } + +} From cb020d34e9cdcc8f9b8902d6dc6e0e10a2d00b94 Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Tue, 19 Apr 2022 16:39:07 +0900 Subject: [PATCH 03/17] 220419_solve : P11866_kim --- 0419/BOJ/P11866/P11866_kim.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 0419/BOJ/P11866/P11866_kim.java diff --git a/0419/BOJ/P11866/P11866_kim.java b/0419/BOJ/P11866/P11866_kim.java new file mode 100644 index 0000000..7b4100f --- /dev/null +++ b/0419/BOJ/P11866/P11866_kim.java @@ -0,0 +1,26 @@ +import java.util.LinkedList; +import java.util.Queue; +import java.util.Scanner; + +public class swea_P11866_요세푸스 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + StringBuilder sb = new StringBuilder(); + int n = sc.nextInt(); + int k = sc.nextInt(); + Queue queue = new LinkedList<>(); + for(int i = 1; i <= n; i++) { + queue.add(i); + } + sb.append("<"); + while(queue.size()>1) { + for(int i = 0; i < k-1; i++) { + queue.add(queue.poll()); + } + sb.append(queue.poll()).append(", "); + } + sb.append(queue.poll()).append(">"); + System.out.println(sb.toString()); + } + +} From e4f1884c88698f0313e5f53b55dc6dc04cc5cd4e Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Tue, 19 Apr 2022 16:39:25 +0900 Subject: [PATCH 04/17] 220419_solve : P15829_kim --- 0419/BOJ/P15829/P15829_kim.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 0419/BOJ/P15829/P15829_kim.java diff --git a/0419/BOJ/P15829/P15829_kim.java b/0419/BOJ/P15829/P15829_kim.java new file mode 100644 index 0000000..92beded --- /dev/null +++ b/0419/BOJ/P15829/P15829_kim.java @@ -0,0 +1,21 @@ +import java.util.Scanner; + +public class swea_15829_hasing { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int m = 1234567891; + int n = sc.nextInt(); + String words = sc.next(); + long ans = 0; + long r = 1; + for(int i = 0; i < n; i++) { + char c = words.charAt(i); + int num = c-'a'+1; // 아스키코드 이용! a가 1이어야 해서 +1 해주었다. + ans += ((num*r)%m); + r = (r * 31) % m; // Math.pow(31, i) 로 했을 시 나중에 long의 범위를 벗어남! 따라서 연산마다 나눠줌 + } + + System.out.println(ans%m); + } + +} From 4e12167aaa7396c75dc52b1a3f7c35da82bfffee Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Tue, 19 Apr 2022 19:38:16 +0900 Subject: [PATCH 05/17] 220419_solve : Lv1_kim --- 0419/Programmers/Lv1/Lv1_kim.java | 87 +++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 0419/Programmers/Lv1/Lv1_kim.java diff --git a/0419/Programmers/Lv1/Lv1_kim.java b/0419/Programmers/Lv1/Lv1_kim.java new file mode 100644 index 0000000..eafe9b0 --- /dev/null +++ b/0419/Programmers/Lv1/Lv1_kim.java @@ -0,0 +1,87 @@ + +public class programmers_키패드2 { + public static class position { + int r; + int c; + + public position(int r, int c) { + this.r = r; + this.c = c; + } + } + + public static position left, right; + public static StringBuilder sb; + public static String same; + + public static void main(String[] args) { + int[] numbers = new int[] { 1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5 }; + int[][] num = new int[4][3]; + left = new position(3, 0); // 왼손 엄지의 위치 * + right = new position(3, 2); // 어른손 엄지의 위치 # + + String hand = "right"; // 손잡이에 따라 둘의 거리가 같을 때 사용할 손가락을 고른다. + if (hand.charAt(0) == 'r') { + same = "R"; + } else { + same = "L"; + } + int cr = 0; + sb = new StringBuilder(); + for (int i = 0; i < numbers.length; i++) { + switch (numbers[i]) { + case 1: + case 4: + case 7: + sb.append("L"); + left.r = numbers[i] / 3; + left.c = 0; + break; + case 3: + case 6: + case 9: + sb.append("R"); + right.r = (numbers[i] / 3) - 1; + right.c = 0; + break; + case 0: + cr = 3; + check(cr, 1); + break; + case 2: + case 5: + case 8: + cr = numbers[i] / 3; + check(cr, 1); + break; + } + + } + System.out.println(sb.toString()); + } + + public static void check(int cr, int cc) { + // 두 엄지의 거리가 같을 때 + if ((Math.abs(right.r - cr) + Math.abs(right.c - cc)) == (Math.abs(left.r - cr) + Math.abs(left.c - cc))) { + sb.append(same); + if (same.charAt(0) == 'L') { // 왼손잡이 일 경우 왼쪽엄지의 위치를 변경 + left.c = cc; + left.r = cr; + } else { // 오른손잡이 일 경우 오른쪽엄지의 위치 변경 + right.r = cr; + right.c = cc; + } + }// 왼손이 더 가까울 때 + else if ((Math.abs(right.r - cr) + Math.abs(right.c - cc)) > (Math.abs(left.r - cr) + + Math.abs(left.c - cc))) { + sb.append("L"); + left.r = cr; + left.c = cc; + } else { // 오른손이 더 가까울 때 + sb.append("R"); + right.r = cr; + right.c = cc; + } + } + +} From cff14f1e7baa1d1f1f4652dd00a039b327003708 Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Tue, 19 Apr 2022 19:38:35 +0900 Subject: [PATCH 06/17] 220419_solve :Lv2_kim --- 0419/Programmers/Lv2/Lv2_kim.java | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 0419/Programmers/Lv2/Lv2_kim.java diff --git a/0419/Programmers/Lv2/Lv2_kim.java b/0419/Programmers/Lv2/Lv2_kim.java new file mode 100644 index 0000000..d1c230d --- /dev/null +++ b/0419/Programmers/Lv2/Lv2_kim.java @@ -0,0 +1,35 @@ + +public class programmers_문자열압축 { + public static void main(String[] args) { + String s = "xababcdcdababcdcd"; + int ans = s.length(); + for (int i = 1; i <= s.length() / 2; i++) { + StringBuilder sb = new StringBuilder(); + int count = 1; // 반복횟수 체크 + String plus = ""; // 마지막에 남는 문자열 + String check = s.substring(0, i); // 비교대상 + for (int j = i; j <= s.length(); j += i) { + String compare = ""; + if (j + i > s.length()) { + plus = s.substring(j, s.length()); // j+i가 s의 길이보다 크다면 마지막에 남는 문자열! + } else { + compare = s.substring(j, j + i); + } + if (check.equals(compare)) { + count++; // 같다면 반복횟수 ++ + } else if (count == 1) { // 같지 않은데 카운트도 1이면 + sb.append(check); //비교대상 더해주고 + check = compare; // 다음 문자로 바꿈 + }else { + sb.append(count).append(check); + check = compare; + count = 1; // 압축횟수는 초기화 해준다. + } + } + sb.append(plus); + ans = Math.min(ans, sb.length()); + } + System.out.println(ans); + } + +} From 8bde911da042435b44eaac2284f3c2ba1d63edf0 Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Thu, 21 Apr 2022 01:19:39 +0900 Subject: [PATCH 07/17] 220421_solve : P1003_kim --- 0421/BOJ/P1003/P1003_kim.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 0421/BOJ/P1003/P1003_kim.java diff --git a/0421/BOJ/P1003/P1003_kim.java b/0421/BOJ/P1003/P1003_kim.java new file mode 100644 index 0000000..6389729 --- /dev/null +++ b/0421/BOJ/P1003/P1003_kim.java @@ -0,0 +1,25 @@ +package study0421; + +import java.util.Scanner; + +public class baekjoon_P1003_피보나치함수 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int tc = sc.nextInt(); + for (int tn = 1; tn <= tc; tn++) { + int[][] save = new int[41][2];// N: 최대 40, [0]: 0의 개수 , [1] : 1의 개수 + int num = sc.nextInt(); + save[0][0] = 1; + save[0][1] = 0; + save[1][0] = 0; + save[1][1] = 1; + + for(int i = 2; i <= num; i++) { + save[i][0] = save[i-1][0]+save[i-2][0]; + save[i][1] = save[i-1][1]+save[i-2][1]; + } + System.out.println(save[num][0]+" "+save[num][1]); + } + } + +} From 47c5ed9880451c74333d8aef680dc5c1c98ab83a Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Thu, 21 Apr 2022 01:19:53 +0900 Subject: [PATCH 08/17] 220421_solve : P1012_kim --- 0421/BOJ/P1012/P1012_kim.java | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 0421/BOJ/P1012/P1012_kim.java diff --git a/0421/BOJ/P1012/P1012_kim.java b/0421/BOJ/P1012/P1012_kim.java new file mode 100644 index 0000000..6e31d7d --- /dev/null +++ b/0421/BOJ/P1012/P1012_kim.java @@ -0,0 +1,46 @@ +package study0421; + +import java.util.Scanner; + +public class baekjoon_1012 { + static int[][] map; + static int m,n; + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int tc = sc.nextInt(); + for(int tn = 1; tn <= tc; tn++) { + m = sc.nextInt(); // 배추밭 가로길이 + n = sc.nextInt(); // 배추밭 세로길이 + int k = sc.nextInt(); // 배추의 개수 + int ans = 0; + map = new int[m][n]; + for(int i = 0; i < k; i++) { + map[sc.nextInt()][sc.nextInt()] = 1; // 배추 위치 표시 + } + for(int i = 0; i < m; i++) { + for(int j = 0; j < n; j++) { + if(map[i][j]==0) continue; + search(i,j); + ans++; + + } + } + System.out.println(ans); + } + + } + static int[] dr= {-1, 1, 0, 0}; // 상하좌우 + static int[] dc = {0, 0, -1, 1}; // 상하좌우 + private static void search(int r, int c) { + map[r][c] = 0; + for(int k = 0; k < 4; k++) { + int nr = r + dr[k]; + int nc = c + dc[k]; + if(nr >=0 && nr < m && nc >= 0 && nc < n && map[nr][nc]==1) { + search(nr,nc); + } + } + + } + +} From bd23f5027a5813d71a4ce49cd133f71d208db1bf Mon Sep 17 00:00:00 2001 From: hyungi4608 Date: Thu, 21 Apr 2022 01:20:11 +0900 Subject: [PATCH 09/17] 220421_solve : P18111_kim --- 0421/BOJ/P18111/P18111_kim.java | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 0421/BOJ/P18111/P18111_kim.java diff --git a/0421/BOJ/P18111/P18111_kim.java b/0421/BOJ/P18111/P18111_kim.java new file mode 100644 index 0000000..0073123 --- /dev/null +++ b/0421/BOJ/P18111/P18111_kim.java @@ -0,0 +1,54 @@ +package study0421; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.Scanner; +import java.util.StringTokenizer; + +public class baekjoon_18111 { + 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 b = Integer.parseInt(st.nextToken()); // 인벤토리 블록 수 + int[][] map = new int[n][m]; + int max = 0; + int min = Integer.MAX_VALUE; + for (int i = 0; i < n; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < m; j++) { + map[i][j] = Integer.parseInt(st.nextToken()); + max = Math.max(map[i][j], max); + min = Math.min(map[i][j], min); + } + } + int anstime = Integer.MAX_VALUE; + int height = 0; + // 땅의 높이가 될 수 있는 범위 + for (int i = min; i <= max; i++) { + int block = b; + int time = 0; + for (int j = 0; j < n; j++) { + for (int k = 0; k < m; k++) { + if (map[j][k] > i) { // 깎아야 함 + block += (map[j][k] - i); // 깎은 블록 인벤토리에 저장 + time += (map[j][k] - i) * 2; // 깎는데 블록 하나당 2초씩 걸림 + } else { + block -= (i - map[j][k]); // 쌓아야 하는 높이만큼 인벤토리에 블록 제거 + time += (i - map[j][k]); // 쌓는데 1초씩 걸림 + } + } + } + //인벤토리에 블록이 0 이상이여야만 평탄화가 잘 진행된 것! && 높이의 최댓값을 구하는 것이라 시간 비교에 등호가 들어간다. + if (block >= 0 && anstime >= time) { + anstime = time; + height = i; + } + } + System.out.println(anstime + " " + height); + } + +} From 6187edd3183989aff417fae7ddae1ace504e4aaa Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:22:44 +0900 Subject: [PATCH 10/17] Delete P11651_kim.java --- 0419/BOJ/P11651/P11651_kim.java | 34 --------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 0419/BOJ/P11651/P11651_kim.java diff --git a/0419/BOJ/P11651/P11651_kim.java b/0419/BOJ/P11651/P11651_kim.java deleted file mode 100644 index 59f8392..0000000 --- a/0419/BOJ/P11651/P11651_kim.java +++ /dev/null @@ -1,34 +0,0 @@ -import java.util.Arrays; -import java.util.Comparator; -import java.util.Scanner; - -public class swea_P11651_좌표정렬하기2 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - int[][] map = new int[n][2]; - for (int i = 0; i < n; i++) { - for (int j = 0; j < 2; j++) { - map[i][j] = sc.nextInt(); - } - } - Arrays.sort(map, new Comparator() { - public int compare(int[] o1, int[] o2) { - if (o1[1] == o2[1]) { - return o1[0] - o2[0]; - } else { - return o1[1] - o2[1]; - } - } - - }); - - for (int i = 0; i < map.length; i++) { - for (int j = 0; j < 2; j++) { - System.out.print(map[i][j] + " "); - } - System.out.println(); - } - } - -} From a94cfb663f351b961e5e067629d5c67f25ed89d8 Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:23:00 +0900 Subject: [PATCH 11/17] Delete Lv2_kim.java --- 0419/Programmers/Lv2/Lv2_kim.java | 35 ------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 0419/Programmers/Lv2/Lv2_kim.java diff --git a/0419/Programmers/Lv2/Lv2_kim.java b/0419/Programmers/Lv2/Lv2_kim.java deleted file mode 100644 index d1c230d..0000000 --- a/0419/Programmers/Lv2/Lv2_kim.java +++ /dev/null @@ -1,35 +0,0 @@ - -public class programmers_문자열압축 { - public static void main(String[] args) { - String s = "xababcdcdababcdcd"; - int ans = s.length(); - for (int i = 1; i <= s.length() / 2; i++) { - StringBuilder sb = new StringBuilder(); - int count = 1; // 반복횟수 체크 - String plus = ""; // 마지막에 남는 문자열 - String check = s.substring(0, i); // 비교대상 - for (int j = i; j <= s.length(); j += i) { - String compare = ""; - if (j + i > s.length()) { - plus = s.substring(j, s.length()); // j+i가 s의 길이보다 크다면 마지막에 남는 문자열! - } else { - compare = s.substring(j, j + i); - } - if (check.equals(compare)) { - count++; // 같다면 반복횟수 ++ - } else if (count == 1) { // 같지 않은데 카운트도 1이면 - sb.append(check); //비교대상 더해주고 - check = compare; // 다음 문자로 바꿈 - }else { - sb.append(count).append(check); - check = compare; - count = 1; // 압축횟수는 초기화 해준다. - } - } - sb.append(plus); - ans = Math.min(ans, sb.length()); - } - System.out.println(ans); - } - -} From 33c0e04e5312695ca7fad36f6ed871ea8a8110c8 Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:23:09 +0900 Subject: [PATCH 12/17] Delete P10989_kim.java --- 0414/BOJ/P10989/P10989_kim.java | 36 --------------------------------- 1 file changed, 36 deletions(-) delete mode 100644 0414/BOJ/P10989/P10989_kim.java diff --git a/0414/BOJ/P10989/P10989_kim.java b/0414/BOJ/P10989/P10989_kim.java deleted file mode 100644 index dd02a98..0000000 --- a/0414/BOJ/P10989/P10989_kim.java +++ /dev/null @@ -1,36 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Arrays; - -public class swea_10989_수정렬2 { - public static void main(String[] args) throws NumberFormatException, IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - StringBuilder sb = new StringBuilder(); - 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[] count = new int[10001]; // 최대가 10000이라 10001로 배열 생성 - for(int i = 0; i < arr.length; i++) { - count[arr[i]]++; - } - - //누적 합 구하기 - for(int i = 1; i < count.length; i++) { - count[i] += count[i-1]; - } - - int[] ans = new int[n]; - for(int i = n-1; i >=0; i--) { - ans[--count[arr[i]]] = arr[i]; - } - - for(int i = 0; i < ans.length; i++) { - sb.append(ans[i]).append("\n"); - } - - System.out.println(sb.toString()); - } -} From 670eb6ef4be6130b07fd52f3cffbc2c3422d0403 Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:23:18 +0900 Subject: [PATCH 13/17] Delete P11050_kim.java --- 0414/BOJ/P11050/P11050_kim.java | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 0414/BOJ/P11050/P11050_kim.java diff --git a/0414/BOJ/P11050/P11050_kim.java b/0414/BOJ/P11050/P11050_kim.java deleted file mode 100644 index 867ce92..0000000 --- a/0414/BOJ/P11050/P11050_kim.java +++ /dev/null @@ -1,27 +0,0 @@ -import java.util.Scanner; - -public class swea_11050_이항계수 { - public static int num = 0; - public static void main(String[] args) { - //자연수 n과 정수 k가 주어졌을 때 이항 계수 구하기. - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - int k = sc.nextInt(); - comb(n,k); // nCk = n-1Ck-1 + n-1Ck - System.out.println(num); - } - - private static void comb(int n, int k) { - if(k == 0) { - num++; - return; - }else if(n < k) { - return; - }else { - comb(n-1, k-1); // k를 뽑고가고 - comb(n-1, k); // k를 안뽑고가고 - } - - } - -} From a46fc4acab1b940d24ee0c68444f8514373ea98a Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:23:25 +0900 Subject: [PATCH 14/17] Delete P11650_kim.java --- 0414/BOJ/P11650/P11650_kim.java | 37 --------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 0414/BOJ/P11650/P11650_kim.java diff --git a/0414/BOJ/P11650/P11650_kim.java b/0414/BOJ/P11650/P11650_kim.java deleted file mode 100644 index a23d0c1..0000000 --- a/0414/BOJ/P11650/P11650_kim.java +++ /dev/null @@ -1,37 +0,0 @@ -package study0414; - -import java.util.Arrays; -import java.util.Comparator; -import java.util.Scanner; - -public class swea_11650_좌표정렬 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - int[][] map = new int[n][2]; //[0] : x좌표 , [1] : y좌표 - for(int i = 0; i < n; i++) { - for(int j = 0; j < 2; j++) { - map[i][j] = sc.nextInt(); - } - } - - // x 좌표 오름차순 정렬 (만약 x 좌표가 같다면 y좌표 오름차순 정렬) - Arrays.sort(map, new Comparator() { - public int compare(int[] o1, int[] o2) { - if(o1[0]==o2[0]) { - return o1[1]-o2[1]; - }else { - return o1[0] - o2[0]; - } - } - }); - - for(int i = 0; i < map.length; i++) { - for(int j = 0; j < 2; j++) { - System.out.print(map[i][j]+" "); - } - System.out.println(); - } - } - -} From fc4d16cbd42b5855120d74a1215b9a93171f1cc0 Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:23:33 +0900 Subject: [PATCH 15/17] Delete P11866_kim.java --- 0419/BOJ/P11866/P11866_kim.java | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 0419/BOJ/P11866/P11866_kim.java diff --git a/0419/BOJ/P11866/P11866_kim.java b/0419/BOJ/P11866/P11866_kim.java deleted file mode 100644 index 7b4100f..0000000 --- a/0419/BOJ/P11866/P11866_kim.java +++ /dev/null @@ -1,26 +0,0 @@ -import java.util.LinkedList; -import java.util.Queue; -import java.util.Scanner; - -public class swea_P11866_요세푸스 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - StringBuilder sb = new StringBuilder(); - int n = sc.nextInt(); - int k = sc.nextInt(); - Queue queue = new LinkedList<>(); - for(int i = 1; i <= n; i++) { - queue.add(i); - } - sb.append("<"); - while(queue.size()>1) { - for(int i = 0; i < k-1; i++) { - queue.add(queue.poll()); - } - sb.append(queue.poll()).append(", "); - } - sb.append(queue.poll()).append(">"); - System.out.println(sb.toString()); - } - -} From c70089ec6cff68f49df72736dc7c1d740ba43a13 Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:23:48 +0900 Subject: [PATCH 16/17] Delete P15829_kim.java --- 0419/BOJ/P15829/P15829_kim.java | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 0419/BOJ/P15829/P15829_kim.java diff --git a/0419/BOJ/P15829/P15829_kim.java b/0419/BOJ/P15829/P15829_kim.java deleted file mode 100644 index 92beded..0000000 --- a/0419/BOJ/P15829/P15829_kim.java +++ /dev/null @@ -1,21 +0,0 @@ -import java.util.Scanner; - -public class swea_15829_hasing { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int m = 1234567891; - int n = sc.nextInt(); - String words = sc.next(); - long ans = 0; - long r = 1; - for(int i = 0; i < n; i++) { - char c = words.charAt(i); - int num = c-'a'+1; // 아스키코드 이용! a가 1이어야 해서 +1 해주었다. - ans += ((num*r)%m); - r = (r * 31) % m; // Math.pow(31, i) 로 했을 시 나중에 long의 범위를 벗어남! 따라서 연산마다 나눠줌 - } - - System.out.println(ans%m); - } - -} From bbbbcdcfcb70c034321ac09bc0c672414a3247af Mon Sep 17 00:00:00 2001 From: hyungi4608 <99406873+hyungi4608@users.noreply.github.com> Date: Thu, 21 Apr 2022 01:23:54 +0900 Subject: [PATCH 17/17] Delete Lv1_kim.java --- 0419/Programmers/Lv1/Lv1_kim.java | 87 ------------------------------- 1 file changed, 87 deletions(-) delete mode 100644 0419/Programmers/Lv1/Lv1_kim.java diff --git a/0419/Programmers/Lv1/Lv1_kim.java b/0419/Programmers/Lv1/Lv1_kim.java deleted file mode 100644 index eafe9b0..0000000 --- a/0419/Programmers/Lv1/Lv1_kim.java +++ /dev/null @@ -1,87 +0,0 @@ - -public class programmers_키패드2 { - public static class position { - int r; - int c; - - public position(int r, int c) { - this.r = r; - this.c = c; - } - } - - public static position left, right; - public static StringBuilder sb; - public static String same; - - public static void main(String[] args) { - int[] numbers = new int[] { 1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5 }; - int[][] num = new int[4][3]; - left = new position(3, 0); // 왼손 엄지의 위치 * - right = new position(3, 2); // 어른손 엄지의 위치 # - - String hand = "right"; // 손잡이에 따라 둘의 거리가 같을 때 사용할 손가락을 고른다. - if (hand.charAt(0) == 'r') { - same = "R"; - } else { - same = "L"; - } - int cr = 0; - sb = new StringBuilder(); - for (int i = 0; i < numbers.length; i++) { - switch (numbers[i]) { - case 1: - case 4: - case 7: - sb.append("L"); - left.r = numbers[i] / 3; - left.c = 0; - break; - case 3: - case 6: - case 9: - sb.append("R"); - right.r = (numbers[i] / 3) - 1; - right.c = 0; - break; - case 0: - cr = 3; - check(cr, 1); - break; - case 2: - case 5: - case 8: - cr = numbers[i] / 3; - check(cr, 1); - break; - } - - } - System.out.println(sb.toString()); - } - - public static void check(int cr, int cc) { - // 두 엄지의 거리가 같을 때 - if ((Math.abs(right.r - cr) + Math.abs(right.c - cc)) == (Math.abs(left.r - cr) + Math.abs(left.c - cc))) { - sb.append(same); - if (same.charAt(0) == 'L') { // 왼손잡이 일 경우 왼쪽엄지의 위치를 변경 - left.c = cc; - left.r = cr; - } else { // 오른손잡이 일 경우 오른쪽엄지의 위치 변경 - right.r = cr; - right.c = cc; - } - }// 왼손이 더 가까울 때 - else if ((Math.abs(right.r - cr) + Math.abs(right.c - cc)) > (Math.abs(left.r - cr) - + Math.abs(left.c - cc))) { - sb.append("L"); - left.r = cr; - left.c = cc; - } else { // 오른손이 더 가까울 때 - sb.append("R"); - right.r = cr; - right.c = cc; - } - } - -}