본문 바로가기

알고리즘

(2)
DFS와 BFS 이번 글에서는 그래프 탐색 알고리즘인 DFS(Depth-First-Search)과 BFS(Breadth-First-Search)에 대해서 파이썬 예제 코드로 알아볼 것이다. DFS(깊이 우선 탐색) DFS는 깊이 우선 탐색이라고도 하고 깊이를 우선으로 탐색한다. 위 그림처럼 최대한 깊이 내려간 뒤 더이상 내려갈 곳이 없다면 옆으로 이동하는 방식이다. 특징 모든 노드를 방문하고자 할 때 사용됨 BFS에 비해 비교적 간단함 검색 속도는 BFS에 비해 느림 스택이나 재귀함수를 이용하여 구현 BFS(너비 우선 탐색) BFS란 너비 우선 탐색이라고도 하고 깊이보단 너비를 우선적으로 탐색하는 알고리즘이다. 위 그림처럼 최대한 옆으로 이동한 후 더이상 옆으로 갈 수없다면 아래로 내려가서 검색하는 방식이다. 특징 최단..
프로그래머스 - 문자열 나누기(파이썬) https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다. s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 ..