너비우선탐색

    [Python] 백준 2468번 - 안전 영역

    문제 https://www.acmicpc.net/problem/2468 [ 문제 조건 ] 문제에서 예시를 들어 설명할 때 모든 경우를 다 조사해 보면 이라고 설명되어 있다. 즉, 모든 경우의 수를 조사해야 됨 (이라고 나는 이해했다.) 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력 [ 해결순서 ] 배열을 입력할 때 N 이상인 값들만 방문여부를 True 값으로 바꾸고 깊이우선탐색을 진행한다. 깊이우선탐색을 진행하고 끝날때 안전영역 값(count)을 늘린다. 또 깊이우선탐색을 반복해야하는데 현재 count 값이 1차에서 3번째 줄처럼 할려고 했으나, ..

    [JAVA] 백준 7569번 - 토마토

    문제 7569번: 토마토 [ 문제 조건 ] 입력 1 = 익은 토마토 0 = 익지않은 토마토 -1 = 토마토 없음 출력 0 = 저장될 때 모든 토마토 익음 1 = 모든 토마토 익지 못함 n = 모두 익을 때 까지 최소 며칠이 걸리는지 보관 후 하루가 지나면 익은 토마토와 인접한 건 익음 [ 해결순서 ] 여태까지 풀던 문제는 상하좌우만 비교해서 해결하면 됐으나, 위 아래도 비교해서 6가지 경우를 비교해야한다. 3차원 배열로 가로,세로,높이의 값을 입력받고 너비우선탐색의 대상은 익은 값만 이므로 입력받을 때, 토마토가 익은 것들만 큐에 넣는다. 큐에 넣은 것들을 하나씩 꺼내며 너비우선탐색 한다. 기존 유사한 BFS 문제의 조건 비교에서 (가로, 세로 비교했던 것) 추가로 높이만 비교하고 토마토가 익었으면 (값..

    [JAVA] 백준 1697번 - 숨바꼭질

    문제 1697번: 숨바꼭질 [ 해결순서 ] 문제의 조건을 파악한 후 이동을 할 때 3가지 경우에 따라 조건문을 작성하면 되겠다고 파악했다. 큐를 이용하여 시작 값을 먼저 큐에 넣고 큐가 비어있을 때까지 반복해서 큐의 값을 꺼내어 3가지 조건을 너비우선탐색을 이용한다. 값이 조건에 벗어나지 않고, 방문을 하지 않았으면 그 값을 큐에 넣어 재귀호출을 통해 그 값을 기준으로 또 너비우선탐색을 한다. 결과의 위치를 찾으면 그 위치가 몇 초후에 찾았는지 visited 배열의 값에 넣어 출력한다. ✏️ 한줄 평 이런 종류의 문제를 너비우선탐색을 이용하여 풀 수 있구나를 제대로 알게 된 문제였다. 코드