
응시자들을 몇명의 감독관으로 감시 할 수 있는지 찾는 문제입니다. 각 응시장에 응시자들 수가 주어지며 총감독관은 각 응시장에 한명 존재합니다. 총감독관 + (감독관*a)으로 해당 응시장을 감시할 수있으면 됩니다. 총감독관과 감독관이 감시할 수 있는 사람의 수가 주어지며 for문을 통해서 모든 응시장에 (해당 응시장 인원수 - 총감독관)를 몇명의 감독관으로 볼 수 있는지 계산하면 됩니다. 각 응시장의 감독관 + 응시장 수(총 감독관 수) import java.util.*; import java.io.*; public class Main { public static void main(String argc[]) throws IOException{ BufferedReader br = new BufferedRea..

중복되지 않는 조합 문제입니다 DFS를 사용해서 모든 경우의 수를 찾아서 출력해주었습니다. import java.io.*; import java.util.*; public class Main { public static BufferedReader br; public static BufferedWriter bw; public static int n; public static int size = 6; public static int[] arr; public static int[] box; public static void main(String argc[]) throws IOException{ br = new BufferedReader(new InputStreamReader(System.in)); bw = n..

https://j3sung.tistory.com/834 [Java] 백준 15649번 N과 M (1) 수열이 주어지고 크기가 주어질때 가능한 조합의 수를 전부 출력하는 문제입니다. DFS를 사용해서 모든 경우의 수를 확인해주었습니다. 출력이 많아서 Java에서 시간초과가 발생하여 BufferedWriter j3sung.tistory.com 위의 문제와 비슷한 문제입니다. 다른 점은 조합이 수열이 중복되면 안된다는 점입니다. ex) 1 2 3 4 4 3 2 1 (위의 경우와 중복) DFS를 사용해 완전탐색을 진행하였으며 DFS내에서 반복문을 현재 다음위치부터로 진행해서 중복된 수열이 나오지 않게 했습니다. import java.io.*; import java.util.Scanner; public class..

수열이 주어지고 크기가 주어질때 가능한 조합의 수를 전부 출력하는 문제입니다. DFS를 사용해서 모든 경우의 수를 확인해주었습니다. 출력이 많아서 Java에서 시간초과가 발생하여 BufferedWriter를 사용해주었습니다. import java.io.*; import java.util.Scanner; public class Main { public static int[] arr; public static boolean[] visit; public static int n; public static int m; public static BufferedWriter bf; public static void main(String argc[]) throws IOException{ bf = new BufferedW..

DFS와 BFS를 구현하는 문제입니다. 재귀함수를 통해서 DFS를 구현하고 Queue를 활용해서 BFS를 구현해 주었습니다. import java.util.*; import java.io.*; public class Main { public static int n; public static int m; public static int v; public static boolean [][] arr; public static boolean[] visit; public static void main(String args[]) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeniz..

큐를 구현하는 문제입니다. 라이브러리에 큐를 가져와서 사용해도 되고 직접 구현해주어도 됩니다. java의 경우 너무 많은 값들을 scanner를 통해서 입력받는데 scanner의 속도가 느려서 시간초과가 발생했습니다. 그래서 BufferedReader를 사용해주어서 입력시간을 줄여주었습니다. import java.util.*; import java.io.*; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Queue queue = new LinkedList(); int n = Int..

톱니바퀴가 규칙에 따라 움직일때 최종적으로 톱니의 위쪽들이 무엇인지 알아내는 문제입니다. 톱니가 맞닿은 부분이 서로 다르면 A톱니가 움직일때 B톱니도 움직이게 됩니다 A톱니가 시계방향으로 회전하면 B톱니는 반대 방향인 반시계방향으로 움직입니다 톱니가 움직여서 바뀐 수열에 대해서는 비트 연산으로 처리를 해주었습니다. import java.util.Scanner; public class Main { static int[] arr; public static void main(String args[]) { Scanner sc = new Scanner(System.in); arr = new int[4]; int num; int cycle; int index, d, d2; int tmp; int l, r; int ..

n/2명을 뽑는 조합을 구합니다. 구해진 조합으로 능력치 값을 더해주고 두 팀의 격차가 적은 값으로 갱신해줍니다. 모든 경우에 대해서 확인한 후 가장 격차가 적은 값을 출력해주었습니다. import java.util.*; import java.io.*; public class Main { static int n; static int[][] arr; static boolean[] team; static int ans = Integer.MAX_VALUE; public static void main(String args[]) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer..