profile
Hello, Devs!
post-thumbnail

[ 백준 ] 16724 피리 부는 사나이

Link | 백준 16724번 문제 : 피리 부는 사나이 📌 About DFS으로 간단히 처리할 수 있는 문제이다. 하지만 DFS 내부의 탐색 과정을 구현하는 방법을 고려해야 한다. 우선 map은 U, R, D, L 이외에도 O, X를 추가한다. X는 현재 DFS에서 탐색한 부분이다. (안전구역 설치 탐색 영역) O는 이전 DFS에서 탐색 완료한 부분이다. (안전구역 설치 완료 영역) DFS 탐색을 하다가 현재 DFS에서 탐색한 영역(X)에 도달하면 새로운 안전구역을 설치한다. 반면에 이미 안전 구역에 도달하게 되는 영역(O)에 도달하면 현재 탐색한 영역은 이미 안전하다. 다음의 예시를 보자. 탐색은 왼

2023년 3월 14일
·
0개의 댓글
·
post-thumbnail

[ 백준 ] 1987 알파벳

Link | 백준 1987번 문제 : 알파벳 📌 About 1행 1열 부터 시작으로 상하좌우를 DFS으로 탐색하면 된다. 이 때 백트래킹을 적용하여 방금 찾은 문자의 탐색 여부를 변경한다. 📌 Solution Step 0. Initialize 주어진 문자 보드를 읽으면서 board 배열에 저장한다. 이때 board 배열의 크기는 탐색의 편의를 위해 R+2 * C+2 로 한다. 추가로 알파벳의 탐색 여부를 저장하는 boolean 배열을 초기화한다. 1행 1열도 탐색에 포함되기 때문에 1행 1열의 문자는 true로 한다. Step 1. 백트래킹 탐색 탐색한 문자에서의 탐색 문자 개수를 max에 계속해서 업데이트 한다. 업데이트 후에는 상하좌우를 탐색한다. 만약 탐색하고자 하는 위치가 board 영역 밖이거나 이미 탐색한 알파벳이면 탐색하지 않는다.

2023년 3월 2일
·
0개의 댓글
·