본문 바로가기

알고리즘 & 자료구조569

문자열 내 마음대로 정렬 package programmers; import java.util.Arrays; public class 문자열_내_마음대로_정렬하기 { public static String[] solution(String[] strings, int n) { Arrays.sort(strings, (o1, o2) -> { if (o1.charAt(n) == o2.charAt(n)) { return o1.compareTo(o2); } return o1.charAt(n) - o2.charAt(n); }); return strings; } public static void main(String[] args) { System.out.println(Arrays.toString(solution(new String[] {"sun", .. 2022. 10. 29.
최소직사각형 package programmers; public class 최소직사각형 { //가장 작은 지갑 만들기 public static int solution(int[][] sizes) { int len = sizes.length; boolean[] check = new boolean[len]; // false = 가로가 더 길다, true : 세로가 더 길다 int hMax = 0, wMax = 0, hCount = getLongHeightCount(sizes, len, check); if ((len / 2) < hCount) { //세로가 긴 명함이 더 많으면, 세로를 기준으로 for (int i = 0; i < len; i++) { if (!check[i]) { swap(sizes[i]); } } } el.. 2022. 10. 23.
비밀지도 package programmers; public class 비밀지도 { //1. 지도는 한 변의 길이가 n인 정사각형 배열, ""과 "#" 두 종류로 이루어짐(공백, 벽) //2. 전체 지도는 두 장의 지도를 겹쳐서 얻음, 지도 1과 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서 벽이고, 지도1과 지도2에서 모두 공백인 부분은 전체 지도에서도 공백 //3. 정수 배열 //4. 암호화된 배열은 각 가로줄에서 벽부분을 1, 공백 부분을 0으로 부호화했을 때 얻어지는 이진수에 해당하는 값의 배열 public static String[] solution(int n, int[] arr1, int[] arr2) { return int2DArrayToStringArray(sumMap(go(arr1), go(.. 2022. 10. 22.
시저암호 package programmers; public class 시저암호 { public static String solution(String s, int n) { StringBuilder sb = new StringBuilder(); for (int i = 0; i = 'a' && c 'z') { int a = c - 'z'; c = (char)('a' - 1 + a); } sb.append(c); } else if (c >= 'A' && c 'Z') { int a = c - 'Z'; c = (char)('A' - 1 + a); } sb.append(c); } else { sb.append(' '); } } retur.. 2022. 10. 20.
예산 package programmers; import java.util.*; public class 예산 { public static int solution(int[] d, int budget) { int answer = 0; List l = new ArrayList(); for (int i : d) { l.add(i); } l.sort(Comparator.reverseOrder()); int c = 0; while (c < l.size()) { int tmp = budget; int cnt = 0; for (int i = c; i < l.size(); i++) { tmp -= l.get(i); if (tmp < 0) { break; } else { cnt++; } } answer = Math.max(ans.. 2022. 10. 20.
백준 2003 package baekjoon.투포인터; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; class Main2003 { static int N, M; static int[] A; public static void main(String[] args) throws Exception { input(); go(); } private static void go() { int R = 0, sum = 0, ans = 0; for (int L = 1; L 2022. 9. 24.