[알고리즘 / Java] 완전탐색(DFS, BFS)
·
알고리즘/개념
- DFS(깊이 우선 탐색, Depth-First Search) : 루트노드나 다른 임의노드에서 다음 분기로 넘어가긴 전에, 해당 분기를 모두 탐색하는 방법으로 탐색 후에는 다시 원점으로 돌아가 다른 분기를 탐색합니다. 자기 자신을 호출하는 순환 알고리즘의 형태입니다. -> 재귀나 스택을 이용 (컴퓨터 자체가 스택구조 이기때문에 재귀만으로 가능) 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 받드시 검사해야합니다. (만약 검사하지 않을 경우 무한루프의 위험이 있습니다.) ex) visited[index] = true; // 방문 미로탐색에서 해당 분기에서 갈 수 있을 때까지 계속 가다가 더이상 갈 수 없게되면 다시 가장 가까운 갈림길(새로운 분기)로 돌아와서 다른 방향으로 다시 탐색을 진행하는 방법..
[알고리즘 / 프로그래머스 / Java] 완주하지 못한 선수
·
알고리즘/프로그래머스
문제 : 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { // 정렬 이용 Arrays.sort(participant); Arrays.sort(completion); // ["a", "a", "b", "c"] ["a", "b", "c"] ..