//알고리즘 1. dfs문제 2. 주어진 입력자료를 연결리스트로 만들기 3. 부분집합을 구함. 4. 부분집합으로 각각 선택 된 선거구가 연결되어 있는지 확인(dfs) import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class 게리맨더링_17471 { static int arr[], N, Ans = Integer.MAX_VALUE; static boolean[] v; static ArrayList[] list; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N ..
//알고리즘 1. 분할정복. 2. 재귀를 이용하여 분할정복을 구현함. import java.util.Scanner; public class z_1074 { static int N, r, c, map[][], div, Ans; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); r = sc.nextInt(); c = sc.nextInt(); div = (int) Math.pow(2, N); cal(1, r, c); } private static void cal(int idx, int r, int c) { if (idx == N) { int nr = Math.abs(r) % 2; int n..
//알고리즘 1. 아이디어 문제 2. 걸리는 시간이 적은 순서로 정렬한 후 더해주면 정답임. import java.util.Arrays; import java.util.Scanner; public class ATM { static int N, P[], ans; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); P = new int[N]; for (int i = 0; i < N; i++) { P[i] = sc.nextInt(); } Arrays.sort(P); // 배열을 작은순으로 정렬해야함. // 2중 포문으로 현재값 + 0번부터 현재의 전까지 합. for (int i = 0; i ..
