BFS 2

[백준] 빙산 2573 java - bfs, dfs

https://www.acmicpc.net/problem/2573 bfs와 dfs를 모두 활용한 문제빙산이 분리됐는지 확인할 때에는 dfs녹는 과정에 대한 처리는 bfs로 처리해줬다동서남북 바다의 개수를 카운트 한 후에 빙산에서 그 값만큼 빼야하는데이 때에 원래 빙산 상태를 어떻게 저장해야하나.. 고민하다가빙산 상태를 매번 copy(깊은 복사) 해주었더니 시간초과가 발생했다따라서 초반에 빙산을 모두 queue에 넣은 후에 visited 처리를 하는 방식으로코드를 수정했다 !! (그렇다면 이후에 변화된 빙산에 영향을 받지 않고 맞닿은 바다를 계산해줄 수 있다) 내 풀이import java.io.*;import java.util.*;public class Main { static int N, M; ..

스터디/Algorithm 2024.06.18

[백준] 직사각형 탈출 16973 java - bfs

https://www.acmicpc.net/problem/16973 생각보다 어렵게 풀린 문제 ㅜ_ㅜ이 문제의 핵심 포인트는 다음과 같다1. 직사각형 중 첫번째 좌표의 범위를 잘 잡기(1~N-H+1,1~M-W+1)2. 사각형의 범위 안에 1이 있으면 안되는데 이를 판별할때이중 for문으로 만들어진 사각형마다 확인하면 시간초과가 발생한다따라서 먼저 1(벽)을 ArrayList에 추가한 후에 벽의 좌표를 꺼내서사각형의 범위 안에 있는지 역으로 확인해야 함!!=> walls에 벽의 x좌표, y좌표를 추가함  1번 조건을 고려하지 않았을 때 반럐5 50 0 0 0 00 0 0 0 00 0 1 0 00 0 0 0 00 0 0 0 02 2 1 1 5 4정답: -1 내 답안import java.io.*;import ..

스터디/Algorithm 2024.06.15