no image
JAVA [Algorithm] - 백준 2206 벽 부수고 이동하기
📝문제 설명 📢입출력 예시 ✏️문제 풀이정답 코드package Baekjoon.Graph;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Baek2206_1 { static int N, M; static int[][] map; static boolean[][][] visited; static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, 1, 0, -1}..
2024.12.18
no image
JAVA [Algorithm] - 백준 14502 연구소
📝문제 설명 - 0은 빈칸, 1은 벽, 2는 바이러스- 바이러스는 상하좌우로 움직이며 벽으로 가로막혀 있으면 퍼질 수 없다.- 벽을 3개를 모두 세운 뒤 바이러스를 퍼트린 후, 0 빈칸의 개수가 최대인 값을 구하면 된다.📢입출력 예시 ✏️문제 풀이package Baekjoon.Graph;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Baek14502 { static int[][] map; static int..
2024.12.18
no image
JAVA [Algorithm] - 백준 7576 토마토
📝문제 설명  - 익은 토마토는 1, 익지 않은 토마토는 0, 토마토가 없으면 -1- 하루가 지나면 익지 않은 토마토는 익은 토마토에게 영향을 받아 상하좌우로 익게 된다. 입출력 1번을 예시로 변화 과정은 아래와 같다.📢입출력 예시 ✏️문제 풀이package Baekjoon.Graph.BFS;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;class Point{ int x; int y; Point(int x, int y){ ..
2024.12.17
no image
JAVA [Algorithm] - 백준 1697 숨바꼭질
📝문제 설명 - 처음에는 그리디 알고리즘인 줄 알고 그리디로 접근하려 했지만 매 순간 최적의 선택(2*x로 갈 때)을 하더라도 최단 거리를 보장할 수 없을 것 같아 BFS로 접근해보았다. - 수빈이가 이동할 수 있는 경우 : X-1, X+1, 2*X- 0초일 때 : X위치- 1초 후일 때 : X-1, X+1, 2*X - 수빈이의 위치를 배열의 인덱스로 정하고 해당 인덱스 값에 초를 기입한다. 배열의 기본 값은 0이기 때문에 초는 +1을 해주며 결과값을 도출 할 때는 -1을 해줄 예정- 가장 빠른 시간을 구하는 것이 목적이기 때문에 위치를 이동했다가 다시 방문할 때는 값을 변경하지 않는다. 수빈이 위치 : 5동생 위치 : 17 0초일 때수빈이의 위치를 배열의 인덱스 값으로 정한다고 했으니 인덱스 5번 위..
2024.12.16
no image
JAVA [Algorithm] - 백준 2178 미로 탐색
📝문제 설명 - 배열의 시작인 인덱스값 [0,0]에서 배열의 끝인 인덱스값 [3,5]까지의 최단거리를 구하는 문제- 최단 거리 문제는 무조건 BFS로 풀어야한다. DFS로 풀면 시간초과남📢입출력 예시 ✏️문제 풀이다양한 풀이 방법 터득을 위해 클래스를 사용한 방법과 배열을 사용한 방법 두가지로 풀어 보았다. 클래스 사용 풀이더보기package Baekjoon.Graph.BFS;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;import java.util.St..
2024.12.14
no image
JAVA [Algorithm] - 백준 2667 단지번호 붙이기
📝문제 설명 - map에서 1인 경우에 DFS, BFS가 몇번 실행되는지,- DFS, BFS 실행되는 경우 그 안에서 몇번 실행되는지 묻는 문제이다.📢입출력 예시 ✏️문제 풀이DFS 풀이더보기package Baekjoon.Graph.DFS;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;public class Baek2667 { static int[][] map; static boolean[][] visited; static ArrayList countList = new Ar..
2024.12.14
no image
JAVA [Algorithm] - 백준 2606 바이러스
📝문제 설명 무방향 그래프 탐색 문제이다. 이 문제는 bfs, dfs 두 가지 방법으로 풀어 보겠다.📢입출력 예시 - 정점의 수 : 7개- 간선의 수 : 6개- 1번 컴퓨터를 통해 바이러스 걸리는 컴퓨터 수 : 4개✏️문제 풀이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 Baek2606 { static boolean[] visited; static Array..
2024.12.13
no image
C++ [Algorithm] - 백준 11724 연결 요소의 개수
문제입출력문제 요약무방향 그래프에서 연결된 요소들의 개수를 찾는 것이다.무방향 그래프에서는 2차원 벡터를 사용해야 한다. 2차원 벡터2차원 벡터라는 것에대해 이해가 잘 안갔는데 자바의 List형태에 배열이랑 구조가 비슷하다.예제 입력 1을 2차원 백터로 표현하자면이런 식으로 표현이 될 것이다.이제 1부터 시작하여 1의 인접 리스트인 2,5를 dfs 진행하면 된다.코드#include #include #include using namespace std;vector V[1000];bool visited[1000];int cnt = 0;int N, M;int a, b;void init() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);}void df..
2024.08.05