본문 바로가기

dfs9

[알고리즘/백준] 14500 테트로미노 - 삼성 SW 역량테스트, 자바(Java) 문제 https://www.acmicpc.net/problem/14500 풀이 코드 ㅜ 를 제외한 나머지 4개 모양은 DFS와 백트래킹을 통해 구한다. ㅜ 모양은 DFS를 통해 구할 수 없기 때문에 추가적으로 구한다.(코드상 checkOShape 메서드) 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 boolean[][] check; static int answer = Integer.MIN_VALUE; static int[] dx = .. 2021. 10. 18.
[알고리즘/백준] 14502 연구소 - 자바(Java), DFS, BFS, 삼성 SW 역량테스트 기출 문제 https://www.acmicpc.net/problem/14502 풀이 코드 DFS를 사용하여 벽을 놓을 위치를 찾는다. BFS를 사용하여 바이러스가 퍼지는 범위를 구하여 안전 영역을 구한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static boolean[][] check; static int[][] board; static int n, m; static List virus; static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, 1, 0, -1}; sta.. 2021. 10. 17.
[백준] 14889 스타트와 링크 - 자바, DFS(깊이 우선 탐색) 문제 링크 https://www.acmicpc.net/problem/14889 풀이 DFS(깊이 우선 탐색)을 진행하여 팀원 조합을 구한다. 하나의 팀원 조합이 완성될 때마다 스타트 팀과 링크 팀의 능력치 차를 구한다. 두 팀의 능력치 차가 0이 나올 경우 , 최소 값이기 때문에 flag 변수를 사용하여 남은 메서드들이 실행되지 않도록 한다. import java.io.*; import java.util.*; public class Main { static int[][] board; static boolean[] check; static int n, min=Integer.MAX_VALUE; static boolean flag = false; public static void dfs(int level, i.. 2021. 7. 23.
[백준] 1759 암호 만들기 - 자바, DFS(깊이 우선 탐색) 문제 링크 https://www.acmicpc.net/problem/1759 풀이 DFS(깊이 우선 탐색)을 사용하여 풀이 import java.io.*; import java.util.*; public class Main { static char[] arr; static int[] check; static int l, c; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); l = Integer.parseInt(st... 2021. 7. 19.
[프로그래머스] 소수 찾기 - JAVA, DFS(깊이 우선 탐색) 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "17" 3 "011" 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 [11, .. 2021. 7. 16.
[프로그래머스] 타겟 넘버 - 자바(java), 깊이 우선 탐색(DFS) 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인 자연수입니다. .. 2021. 7. 12.