본문 바로가기

휴지통665

N Queen package programmers; public class N_Queen { private static int ans; private static int[] map; public static int solution(int n) { ans = 0; map = new int[n]; go(0, n); return ans; } private static void go(int current, int n) { if (current == n) { ans++; return; } for (int i = 0; i < n; i++) { map[current] = i; if (check(current)) { go(current + 1, n); } } } private static boolean check(int i) { f.. 2023. 3. 29.
테이블 해시 함수 package programmers; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class 테이블_해시_함수 { public static int solution(int[][] data, int col, int row_begin, int row_end) { sort(data, col); List modResult = getModResult(data, row_begin, row_end); return getXOR(modResult); } //튜플의 col 번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 값이 동일하면 첫 번째 컬럼의 값을 기준으로 내림차순 정렬 //data[i][j]는 i + 1 번째 .. 2023. 3. 28.
혼자 놀기의 달인 package programmers; import java.util.PriorityQueue; public class 혼자_놀기의_달인 { //2 cards[y] = i : 열려 있는 상자 까지 계속 연다. -> 1번 그룹 //1번 그룹을 제외하고 남는 상자가 없으면 게임 종료 -> 점수 0점 획득 //남은 상자 중 임의의 상자를 골라서 똑같이 그룹을 만듬 //1번 그룹 x ... x n 번 그룹 = 최대 값 구하기 private static boolean[] visited; private static int[] card; private static PriorityQueue pq; public static int solution(int[] cards) { card = cards; visited = new.. 2023. 3. 27.
마법의 엘레베이터 package programmers; public class 마법의_엘레베이터 { //절대값이 10^x 형태의 정수들이 적힌 버튼이 있다.(-1, 1, -10, 10, -100, 100, ...) //현재 층 수에 버튼에 적혀 있는 값을 더한 층으로 이동하게 된다. //엘레베이터가 위치해 있는 층과 버튼의 값을 더한 결과가 0보다 작으면 엘레빙터는 움직이지 않는다. //1. 10^x 을 만드는 최소의 방법 // 1 = 5)) { storey += 10 - n; answer += 10 - n; } else { answer += n; } storey /= 10; } return answer; } public static void main(String[] args) { System.out.println(sol.. 2023. 3. 25.
숫자 카드 나누기 package programmers; import java.util.Arrays; public class 숫자_카드_나누기 { //1. A가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, B가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 수 //2. B가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, A가 가진 카드들에 적힌 모든 숫자를 중 하나도 나눌 수 없는 수 public static int solution(int[] arrayA, int[] arrayB) { int answer = 0; int idx = 0; int max = Math.max(Arrays.stream(arrayA).max().getAsInt(), Arrays.stream(arrayB).max().getAsInt().. 2023. 3. 23.
호텔 대실 package programmers; import java.util.Comparator; import java.util.PriorityQueue; public class 호텔_대실 { public static int solution(String[][] book_time) { PriorityQueue pq1 = new PriorityQueue((o1, o2) -> { if (o1.start == o2.start) { return o1.end - o2.end; } return o1.start - o2.start; }); for (String[] s : book_time) { pq1.add(new Pair(s[0], s[1])); } PriorityQueue pq2 = new PriorityQueue(Comp.. 2023. 3. 22.