본문 바로가기

BFS2

[프로그래머스] "2020 카카오 인턴쉽" 키패드 누르기(BFS 사용) 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4.. 2020. 8. 29.
[python] Graph Traversals(Search) 그래프 순회(탐색) 정리 보통 그래프 문제에는 DFS(Depth-First Search)와 BFS(Breadth-First Search)가 있다. DFS는 깊이 우선 탐색이라 부르고 BFS는 너비 우선 탐색이라 부른다. - 컴공이라면 전공 시간에 배운다. 수리 논리, 이산수학, 계산이론 등 이러한 시간에 DFS, BFS에 대해서 배웠다. 나무 위키에 있는 것이다.. 이거를 보면 이해하기가 쉬울 것이다. 번호 순서대로 탐색을 진행한다. DFS는 위 그림에서 보이듯 마지막 노드까지 깊게 탐색을 한다. * 1, 2, 3 ... 등 숫자가 써져있는 동그라미를 노드라고 부른다. BFS는 위 그림에서 보이듯 넓게 탐색을 한다. - BFS는 최단경로를 알아내는데 쓰인다. 일반적으로 알고리즘 문제에서는 BFS 보다는 DFS를 많이 쓰이게 된다.. 2020. 8. 7.