본문 바로가기

BFS

(8)
[Java] 백준 알고리즘 16234번 문제 : 삼성 SW 역량 테스트 기출 문제 - 인구 이동 (BFS, 너비 우선 탐색) --- 문제 --- --- 코드 --- import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; // 1. 연합 국가들을 묶는 클래스 class United{ ArrayList contries; int sum,y,x; // 1-1. 시작 나라 기준으로 초기화 United(int y,int x,int self){ this.contries = new ArrayList(); this.sum = sel..
[Java] 백준 알고리즘 14888번 문제 : 삼성 SW 역량 테스트 기출 문제 - 연산자 끼워넣기 (BFS ,너비 우선 탐색) --- 문제 --- --- 코드 --- import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Sw14888 { public static int stoi(String s) { return Integer.parseInt(s); } public static int[] numbers, operates; public static int N, result; public stati..
[Java] 백준 알고리즘 14502번 문제 : 삼성 SW 역량 테스트 기출 문제 - 연구소 (DFS, 깊이 우선 탐색, BFS, 너비 우선 탐 --- 문제 --- --- 코드 --- 벽 3개 가능한 경우 모두 깊이 우선 탐색 (dfs) 해주고,각 탐색 기간에 바이러스 전파 모습을 너비 우선 탐색 (bfs) 해주는 탐색 종합 문제였습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Bj14502 { public static int N,M; public static int[][] map; public ..
[Java] SW Expert Academy 1953번 문제: [모의 SW 역량테스트] 탈주범 검거 (BFS, 너비 우선 탐색) --- 문제 --- 1953. [모의 SW 역량테스트] 탈주범 검거 --- 코드 --- 가능한 도보의 갯수의 범위를 1칸씩 늘려가며 체크하는 BFS 문제 인데, 특수하게 고려할 것이 많은 문제이다. 고려할 것은 이전에 방문했던 것은 다시 방문할 필요가 없는 것 시간 L을 넘지 않기 위해 같은 시간에 방문하는 위치의 갯수(cand->turn)를 저장시켰다가 그 만큼 확인후에(turn==0) 시간을 다음 시간으로(++hour) 변경해야하는 것 위로 움직였을 때 못 가는 터널이 있고(아래 방향으로 뚫리지 않은 터널이 있는 경우), 아래로 움직였을 때 못가는 터널이 있고 좌,우도 똑같이 못가는 터널을 고려해주어야 하는 것 이 3가지 고려 점들이 문제를 더욱 어렵게 만들어 주었습니다. 제가 푼 풀이는 다음과 같습..
[Java] SW Expert Academy 2819번 문제: 격자판의 숫자 이어 붙이기 (너비우선탐색 BFS) --- 문제 --- 격자판의 숫자 이어 붙이기 --- 코드 --- 1. 격자에 숫자를 입힌다. 2. 격자의 임의의 한 자리를 시작점으로 6스텝 옮겨서 숫자를 만든다(BFS) 3. 결과를 중복되지 않게 저장하는 Set 자료 구조에 추가한다 4. 모든 격자 칸을 시작점으로 위 과정을 반복해서 마지막에 Set에 저장된 숫자 갯수를 출력한다 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.HashSet; import java.util.Scanner; public class Sw2819 { public static HashSet result; public static int[][] map; public st..
[Java] Progrmmers 코딩테스트 연습 : 등굣길 (동적 계획법 Dynamic Programming, BFS,Stack) --- 문제 --- 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈 나머지를 return 하도록 solution 함수를 작성해주세요. 제한사항 격자의 크기 m, n은 1 이상 100 이하인 자연수입니다. m과 n이 모두 1인 ..
[Java] Progrmmers 코딩테스트 연습 : 단어변환 (DFS/BFS) --- 문제 --- 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> cog와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 retu..
[Java] Progrmmers 코딩테스트 연습 : 네트워크 (DFS/BFS) ---문제--- 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 c..

728x90
반응형