본문 바로가기

BFS8

백준 6593번 상범 빌딩(JAVA) - BFS 백준 6593번 상범 빌딩 https://www.acmicpc.net/problem/6593 문제설명 - 빌딩의 정보가 주어진다. ( .(점)은 이동가능 / #은 이동불가능 ) - L층 R행 C열의 크기로 이루어진 빌딩 - 시작점과 도착점은 하나만 존재 - 여기서 탈출할 수 있는 최단거리를 찾는 문제. 접근 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.StringTokenizer; public cl.. 2023. 5. 3.
백준 2573번 빙산(JAVA) - BFS/DFS 백준 2573번 빙산 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제설명 - 빙산들의 정보가 주어지고 1년 마다 빙하가 녹는다. - 빙산은 자기의 위치를 기준으로 동서남북 사방의 방향의 0(바다)의 개수 만큼 높이가 줄어든다. - 동서남북 방향으로 붙어있는 칸들은 연결되어 있다고 판단하고, 시간이 지남에따라 빙산이 녹아서 없어질 때 빙산의 영역(덩어리의 개수)가 2개 이상이 되는 최초의 시간을 구하는 문제. (단 2덩어리 이상이 만들.. 2023. 5. 2.
백준 5014번 스타트링크(JAVA) - BFS 백준 5014번 https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 문제설명 스타트링크가 있는 건물 층수(F)와 스타트링크의 층수 (G), 현재 위치(S), 해당 층수 만큼 올라가는 버튼(U), 해당 층수 만큼 내려가는 버튼(D)가 주어질 때 S에서 F로 가기위해 눌러야하는 버튼의 최소 횟수를 구하는 문제. 접근 BFS로 접근 코드 import java.io.BufferedReader; import java.io.IOException; import java.i.. 2023. 5. 1.
백준 4963번 섬의 개수(JAVA) - DFS 백준 4963번 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제설명 섬과 바다 지도가 주어지는데, 섬의 개수를 세는 문제 - 가로, 세로, 대각선으로 연결되어 있으면 걸어갈 수 있다. - 지도의 너비 w와 h를 입력받는다. (행/렬 구분 주심) - w,h가 0 0 이 들어오기 전까지 계속 반복하며 0 0 이 들어오면 종료. 접근 DFS로 접근 (상하좌우, 대각선까지 정의) 코드 import java.io.BufferedReader; .. 2023. 5. 1.