본문 바로가기

알고리즘 & 자료구조/프로그래머스132

최소직사각형 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.
124 나라의 숫자 package programmers; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; public class OneToFourNumberOfCountry { public String solution(int n) { String answer = ""; int i = 0; while(0 < n) { i = n%3; if(0 == i) { n = n/3 -1; i = 4; }else n /= 3; if (i == 1) { answer = "1" + answer; } if (i == 2) { answer = "2" + answer; } if (i == 4) { answer = "4" + answer; } } .. 2022. 6. 24.
멀쩡한 사각형 package programmers; import java.math.BigInteger; public class PlainSquare { public static long solution(int w, int h) { int gcd = BigInteger.valueOf(w).gcd(BigInteger.valueOf(h)).intValue(); return ((long)w * (long)h) - ((((long)w / gcd) + ((long)h / gcd) - 1) * gcd); } } 2022. 6. 23.