[백준] Silver II. 촌수 계산
·
Algorithm/백준
https://www.acmicpc.net/problem/2644 사용 알고리즘그래프 탐색DFS풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.lang.reflect.Array;import java.util.*;public class Main { static int n, a, b, m; static List> graph = new ArrayList(); static boolean [] visited; static int res = -1; public static void main(String[] args) throws IOException {..
[백준] Silver II. 연결 요소의 개수
·
Algorithm/백준
https://www.acmicpc.net/problem/11724  사용 알고리즘BFSDFS그래프 탐색풀이BFSimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.lang.reflect.Array;import java.util.*;public class Main { static int n, m; static List> graph = new ArrayList(); static boolean [] visited; public static void main(String[] args) throws IOException { BufferedReader..
[백준] Level IV. 빙산
·
Algorithm/백준
https://www.acmicpc.net/problem/2573  사용 알고리즘 BFS구현풀이 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { /* 1. 4분면에 있는 0의 개수만큼 값이 줄어듬 2. 두 덩어리로 분리되는 최초의 시간을 구함 */ static int n, m; static int [][] board; static int [][] tmp; static boolean[][] visited; static int[] dx = {1, 0, -1, 0};..
[백준] Gold III. 감시
·
Algorithm/백준
https://www.acmicpc.net/problem/15683 사용 알고리즘DFS백트래킹풀이 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { static int n, m; static int [][] board; static int total = Integer.MAX_VALUE; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRea..
[백준] Gold IV. 연구소
·
Algorithm/백준
https://www.acmicpc.net/problem/14502 사용 알고리즘DFS백트래킹풀이 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;/* 1. 백트래킹과 BFS를 활용하는 문제같음 2. 길이가 3이 될때까지 벽을 모두 배치하고, 백트래킹을 돌면서 계속 넓이를 구함 3. 최댓값을 계속 갱신해줌 */public class Main { static int n, m; static int [][] board; static boolean [][] visited; static int [] dx = {1, 0, -1, 0}; stat..
N과 M 문제들 다시 풀어보기
·
Algorithm/백준
N과 M(1)1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열중복되는 수열을 여러 번 출력하면 안되며 -> boolean 배열을 사용해서 방문 체크 N과 M(2)고른 수열은 오름차순이어야 한다.위 조건으로 인해서 idx라는 파라미터가 추가되서 백트래킹을 돌리게 된다. 이전 문제에서 헷갈렸던 부분, i+1로 돌리느냐 idx + 1로 돌리느냐의 차이는 idx + 1로 돌리면, 현재 인덱스를 기준으로 다음 인덱스를 호출하기 때문에 항상 오름차순이지 않다. 하지만, i+1은 현재 요소를 기준으로 다음 요소를 선택하기 때문에 [1,2,3,4] -> 1을 다 순회했다면 다시 1을 사용하지 않아서 모두 오름차순이 된다.dfs(i + 1, depth + 1); N과 M(3)같은 수를 여러 번 골라도 된다.말그대..
[백준] Silver 1. 스타트와 링크
·
Algorithm/백준
https://www.acmicpc.net/problem/14889 사용 알고리즘백트래킹브루트 포스풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int n; static int [][] board; static boolean [] visited; static int min = Integer.MAX_VALUE; // 재귀 종료 조건 -> depth가 n/2도달 public static void main(String[] args) throws IOExce..
[백준] Silver II. 부분수열의 합
·
Algorithm/백준
https://www.acmicpc.net/problem/1182 알고리즘백트래킹풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int n, s; static int [] arr; static int count = 0; static boolean [] visited; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(ne..
[백준] Gold IV. N-Queen
·
Algorithm/백준
https://www.acmicpc.net/problem/9663 사용 알고리즘백트래킹풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { static int n; static int [] arr; static int count = 0; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = ..
[백준] Silver.1 연산자 끼워넣기
·
Algorithm/백준
https://www.acmicpc.net/problem/14888 사용 알고리즘백트래킹재귀풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { static int n; static int [] nums; static int [] cal = new int [4]; static int max = Integer.MIN_VALUE; static int min = Integer.MAX_VALUE; public static void main(String[] args) throws IOException {..