Skip to content
38 changes: 38 additions & 0 deletions src/juni/boj/dfs/_15650/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package juni.boj.dfs._15650;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
private static int n;
private static int m;

static StringBuilder sb = new StringBuilder();
static int[] arr;

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
n = Integer.parseInt(inputs[0]);
m = Integer.parseInt(inputs[1]);
arr = new int[m];
backTracking(1,0);
System.out.println(sb);
}

private static void backTracking(int now,int count) {
if(count == m){
for(int a : arr){
sb.append(a).append(" ");
}
sb.append("\n");
return;
}

for(int i=now;i<=n;i++){
arr[count] = i;
backTracking(i+1,count+1);
}
}
}
38 changes: 38 additions & 0 deletions src/juni/boj/dfs/_15651/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package juni.boj.dfs._15651;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
private static int n;
private static int m;

static StringBuilder sb = new StringBuilder();
static int[] arr;

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
n = Integer.parseInt(inputs[0]);
m = Integer.parseInt(inputs[1]);
arr = new int[m];
backTracking(1,0);
System.out.println(sb);
}

private static void backTracking(int start, int count) {
if(count==m){
for(int a:arr){
sb.append(a).append(" ");
}
sb.append("\n");
return;
}
for(int i=1;i<=n;i++){
arr[count] = i;
backTracking(i+1,count+1);
}

}
}
40 changes: 40 additions & 0 deletions src/juni/boj/dfs/_15652/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package juni.boj.dfs._15652;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
private static int n;
private static int m;

static StringBuilder sb = new StringBuilder();
static int[] arr;

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
n = Integer.parseInt(inputs[0]);
m = Integer.parseInt(inputs[1]);
arr = new int[m];
backTracking(1,0);
System.out.println(sb);
}

private static void backTracking(int start, int count) {
if(count==m){
for(int a:arr){
sb.append(a).append(" ");
}
sb.append("\n");
return;
}

for(int i=start;i<=n;i++){
arr[count] = i;
backTracking(i,count+1);
}

}
}

53 changes: 53 additions & 0 deletions src/juni/boj/dfs/_15654/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package juni.boj.dfs._15654;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
private static int n;
private static int m;

static StringBuilder sb = new StringBuilder();
static int[] arr;
static int[] numbers;
static boolean[] visited;

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
n = Integer.parseInt(inputs[0]);
m = Integer.parseInt(inputs[1]);
numbers = new int[n];
visited = new boolean[10];
inputs = br.readLine().split(" ");
for(int i=0;i<n;i++){
numbers[i] = Integer.parseInt(inputs[i]);
}
Arrays.sort(numbers);
arr = new int[m];
backTracking(0,0);
System.out.println(sb);
}

private static void backTracking(int start, int count) {
if(count==m){
for(int a:arr){
sb.append(a).append(" ");
}
sb.append("\n");
return;
}

for(int i=0;i<n;i++){
if(!visited[i]){
visited[i] = true;
arr[count] = numbers[i];
backTracking(i+1,count+1);
visited[i] = false;
}
}

}
}
53 changes: 53 additions & 0 deletions src/juni/boj/dfs/_15655/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package juni.boj.dfs._15655;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
private static int n;
private static int m;

static StringBuilder sb = new StringBuilder();
static int[] arr;
static int[] numbers;
static boolean[] visited;

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
n = Integer.parseInt(inputs[0]);
m = Integer.parseInt(inputs[1]);
numbers = new int[n];
visited = new boolean[10];
inputs = br.readLine().split(" ");
for(int i=0;i<n;i++){
numbers[i] = Integer.parseInt(inputs[i]);
}
Arrays.sort(numbers);
arr = new int[m];
backTracking(0,0);
System.out.println(sb);
}

private static void backTracking(int start, int count) {
if(count==m){
for(int a:arr){
sb.append(a).append(" ");
}
sb.append("\n");
return;
}

for(int i=start;i<n;i++){
if(!visited[i]){
visited[i] = true;
arr[count] = numbers[i];
backTracking(i+1,count+1);
visited[i] = false;
}
}

}
}
49 changes: 49 additions & 0 deletions src/juni/boj/dfs/_15656/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package juni.boj.dfs._15656;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
private static int n;
private static int m;

static StringBuilder sb = new StringBuilder();
static int[] arr;
static int[] numbers;
static boolean[] visited;

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
n = Integer.parseInt(inputs[0]);
m = Integer.parseInt(inputs[1]);
numbers = new int[n];
visited = new boolean[10];
inputs = br.readLine().split(" ");
for(int i=0;i<n;i++){
numbers[i] = Integer.parseInt(inputs[i]);
}
Arrays.sort(numbers);
arr = new int[m];
backTracking(0,0);
System.out.println(sb);
}

private static void backTracking(int start, int count) {
if(count==m){
for(int a:arr){
sb.append(a).append(" ");
}
sb.append("\n");
return;
}

for(int i=0;i<n;i++){
arr[count] = numbers[i];
backTracking(i+1,count+1);
}

}
}
50 changes: 50 additions & 0 deletions src/juni/boj/dfs/_15657/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package juni.boj.dfs._15657;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
private static int n;
private static int m;

static StringBuilder sb = new StringBuilder();
static int[] arr;
static int[] numbers;
static boolean[] visited;

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
n = Integer.parseInt(inputs[0]);
m = Integer.parseInt(inputs[1]);
numbers = new int[n];
visited = new boolean[10];
inputs = br.readLine().split(" ");
for(int i=0;i<n;i++){
numbers[i] = Integer.parseInt(inputs[i]);
}
Arrays.sort(numbers);
arr = new int[m];
backTracking(0,0);
System.out.println(sb);
}

private static void backTracking(int start, int count) {
if(count==m){
for(int a:arr){
sb.append(a).append(" ");
}
sb.append("\n");
return;
}

for(int i=start;i<n;i++){
arr[count] = numbers[i];
backTracking(i,count+1);
}

}
}

66 changes: 66 additions & 0 deletions src/juni/boj/dfs/_1780/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package juni.boj.dfs._1780;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
public static int[][] papers;
public static int MINUSPAPER=0;
public static int ZEROPAPER=0;
public static int PLUSPAPER=0;

public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
papers = new int[n][n];
for(int i=0;i<n;i++){
String[] line = br.readLine().split(" ");
for(int j=0;j<n;j++){
papers[i][j] = Integer.parseInt(line[j]);
}
}

recursive(0,0,n);
System.out.println(MINUSPAPER);
System.out.println(ZEROPAPER);
System.out.println(PLUSPAPER);

}

public static void recursive(int x,int y,int size){
if(check(x,y,size)){
if(papers[x][y]==-1){
MINUSPAPER++;
}else if(papers[x][y]==0){
ZEROPAPER++;
}else{
PLUSPAPER++;
}
return;
}
int length = size/3;
recursive(x,y,length);
recursive(x,y+length,length);
recursive(x,y+2*length,length);

recursive(x+length,y,length);
recursive(x+length,y+length,length);
recursive(x+length,y+2*length,length);

recursive(x+2*length,y,length);
recursive(x+2*length,y+length,length);
recursive(x+2*length,y+2*length,length);
}

public static boolean check(int x,int y,int size){
int number = papers[x][y];
for(int i=x;i<x+size;i++){
for(int j=y;j<y+size;j++){
if(papers[i][j]!=number){
return false;
}
}
}
return true;
}
}
Loading