본문 바로가기

휴지통665

다리를 지나는 트럭 package programmers; import java.util.LinkedList; import java.util.Queue; public class 다리를지나는트럭 { // 다리 위에 최대 bridge_length 만큼 트럭 올리기 가능 // 다리는 weight 이하의 무게 까지 가능 // 트럭이 통과하는 시간은 bridge_length public static int solution(int bridge_length, int weight, int[] truck_weights) { Queue bridge = new LinkedList(); int sum = 0; int time = 0; for (int i = 0; i < truck_weights.length; i++) { while (true) {.. 2023. 2. 16.
2XN 타일링 package programmers; public class Two_X_N_타일링 { //D[i] = 가로 길이갸 i 일때 타일 배치 경우의수 //D[i] = D[i-1] + D[i-2] //D[i] = i-1번째에는 타일 세로 배치만 가능, i-2 번째에는 타일 가로 배치만 가능 private static int[] D; public static int solution(int n) { D = new int[60_001]; D[1] = 1; D[2] = 2; for (int i = 3; i 2023. 2. 15.
2개 이하로 다른 비트 package programmers; import java.util.Arrays; public class 두개이하로다른비트 { // f(x) = x 보다 크고 x와 비트가 1~2개 다른 수 들 중에서 제일 작은수 // 2 = 000...0010 // 3 = 000...0011 // 4 = 000...0100 // 5 = 000...0101 // 6 = 000...0110 // 7 = 000...0111 // 8 = 000...1000 // 9 = 000...1001 // 10 = 000...1010 // 11 = 000...1011 // 12 = 000...1100 // 13 = 000...1101 // 14 = 000...1110 // 15 = 000...1111 // 16 = 000..10000 //.. 2023. 2. 14.
모음 사전 package programmers; public class 모음사전 { // A, E, I, O ,U 로만 만들 수 있는 5글자 이하의 단어 // A, AA, ... , UUUUU // 주어진 단어가 몇번째 단어인지 private static String[] dictionary = {"A", "E", "I", "O", "U"}; private static int ans; public static int solution(String word) { ans = 0; go(word, 0, new StringBuilder()); return ans; } private static void go(String word, int count, StringBuilder sb) { if (count == dictionar.. 2023. 2. 13.
파일명 정렬 package programmers; import java.util.Arrays; public class 파일명정렬 { //파일명에 숫자가 포함된 숫자를 반영한 정렬 기능 구현 //파일명은 100글자 이내 //대소문자, 숫자, 공백, 마침표, 빼기 만으로 이루어져 있다. //파일명은 영문자로 시작하며, 숫자를 하나 이상 포함하고 있다. //파일명은 크게 Head, Number, Tail 로 구성 //Head는 숫자가 아닌 문자로 이루어져있으며, 최소한 한글자 이상 //Number은 한 글자에서 최대 5글자의 연속된 숫자로 이루어져있으며 앞쪽에 0이 올 수 있다. //Tail은 나머지 부분으로, 숫자가 다시 나타날 수 있으며, 아무글자가 없을 수도 있다. //1. 파일명은 Head 기준으로 사전 정렬 //.. 2023. 2. 12.
프렌즈 4 블록 package programmers; import java.util.ArrayList; import java.util.List; public class 프렌즈4블록 { //같은 블록은 여러 2x2에 포함 가능 //지워지는 조건에 만족하는 2x2 모양이 여러 개 있다면 한번에 지워짐 //지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채움 public static int solution(int m, int n, String[] board) { char[][] map = init(m, n, board); while (true) { boolean[][] check = new boolean[m][n]; findRemovableBlock(m, n, map, check); List[] list = new A.. 2023. 2. 11.