[Algorithm] DFS (다차원 배열)
·
Programming/Algorithm & Data Structure
https://blog.encrypted.gg/942 [실전 알고리즘] 0x0A강 - DFS드디어 01 02 03 이렇게 숫자를 넘어서 0A강에 도달했습니다. 아직 완결까지는 한참 남았지만 아무튼 힘을 내서 계속 잘 해봅시다. 아, 참고로 저번 단원보다는 내용이 많지 않아서 편한 마음으로blog.encrypted.gg대부분의 내용을 위의 게시물을 참고해 작성한 글이다.DFS의 기본 개념이전 게시물에서 BFS에 대해 알고 있다는 것을 전제로 설명한다. DFS를 사용하면 다차원 배열에서 각 칸을 깊이를 우선으로 방문할 수 있다. 그리고 DFS는 재귀로도 자주 사용되는데, 여기에서는 스택을 사용한 DFS만 설명하겠다. DFS에는 스택이 사용된다. BFS와 유일하게 다른 점은 큐 대신 스택이 사용된다는 것 밖에..
[Algorithm] BFS (다차원 배열)
·
Programming/Algorithm & Data Structure
https://blog.encrypted.gg/941 [실전 알고리즘] 0x09강 - BFS안녕하세요 여러분, 드디어 올 것이 왔습니다. 마음의 준비를 단단히 하셔야 합니다.. 드디어 실전 알고리즘 강의에서 첫 번째 고비에 도달했는데 이 강의와 함께 이번 고비를 잘 헤쳐나가면 좋blog.encrypted.gg대부분의 내용을 위의 게시물을 참고해 작성한 글이다.BFS의 기본 개념BFS를 사용하면 다차원 배열에서 각 칸을 방문할 때 너비를 우선으로 방문할 수 있다. BFS는 원래 그래프에서 모든 노드를 방문할 때 사용하는 것이 맞지만... 그냥 다차원 배열에서도 사용할 수 있다고 생각하자. (다차원 배열에서의 탐색이 필요한 문제는 전부 BFS로 푼다고 생각해도 된다. DFS는 그래프나 트리에서 자주 사용됨)..
[Algorithm] 델타값을 이용한 상하좌우 탐색
·
Programming/Algorithm & Data Structure
https://www.acmicpc.net/problem/1012 백준 1012 문제를 풀다가 나온 스킬이다. 자주 사용되므로 숙지해두자. 문제에서 2차원 배열에 있는 모든 원소를 하나씩 살펴보면서 그 원소의 상하좌우 원소도 검사하는 작업이 있었다.여기에서 반복문을 통해 x와 y에 델타값을 더해 매우 편하게 상하좌우 탐색을 할 수 있다. 구현 순서는 다음과 같다. (이 정도는 외우자)탐색에 사용할 델타값 배열 만들기기존 좌표에 델타값을 더한 새로운 좌표 구하기새로운 좌표가 배열 인덱스 범위 안에 있는지 검사하기전체 코드는 다음과 같다. (DFS 코드 안에 들어가 있으므로 for문 안쪽만 보면 된다)// 탐색에 사용할 델타값// 상, 하, 좌, 우 순서로 이동int dy[4] = {-1, 1, 0, 0};..
snwdaaa
'Algorithm' 태그의 글 목록