dfs 6

[프로그래머스] 소수 찾기 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  Review순열 + DFS 의 문제였다. 우선, 주어진 숫자들로 만들 수 있는 모든 수를 구하기 위해 순열을, 중복되지 않는 소수만 저장할 수 있도록 Set을 사용했다. 각 자리에 숫자를 하나씩 추가하면서, 그 숫자가 사용되었는지 visited 배열을 통해 확인하고, 사용된 숫자는 다시 선택되지 않도록 했다. 수가 조합될 때마다 문자열로 만들어 소수 판별을 해주었다. 이때, 평소에 사용하던 소수판별법이 아니라, 에라토스테네스의 체 개념을 사용..

Dev/Programmers 2025.01.14

[프로그래머스] 모음사전 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  IdeaDFS로 슥삭 하고 풀었다. 그런데 생각해보니 완전탐색 문제네... 점심 먹고 와서 다시 풀어야징  Codeimport java.util.*;class Solution {    List list = new ArrayList();        public int solution(String word) {        dfs("", 0);        return list.indexOf(word);    }        private vo..

Dev/Programmers 2025.01.08

[프로그래머스] 단어 변환 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  Review이 문제도 마찬가지로 BFS와 DFS로 모두 풀어보고자 했다. 생각보다 꽤 오래 걸려서 며칠 뒤 다시 한 번 풀어봐도 좋을 것 같다.  CodeBFS ver.import java.util.*;class Solution { public int solution(String begin, String target, String[] words) { if(!Arrays.asList(words).contains(target))..

Dev/Programmers 2024.12.17

[프로그래머스] 네트워크 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  ReviewDFS와 BFS 모두로 풀어보고 싶어서 도전해봤다.  Codeimport java.util.*;class Solution { boolean[] visited; public int solution(int n, int[][] computers) { int answer = 0; visited = new boolean[n]; for (int i = 0; i q ..

Dev/Programmers 2024.12.17

[프로그래머스] 타겟 넘버 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  IdeaBFS/DFS 문제는 최단거리냐 아니냐로 판단하는 편인데, 이 문제는 최단거리는 아니어서 DFS 방식으로 풀었다.if (index == numbers.length) 여기에서 numbers.length - 1 이 아닌 이유는 마지막 인덱스를 탐색한 후에 더 이상 진행하지 않기 때문이다. index == numbers.length 는 배열의 끝을 넘어선 인덱스라는 의미로, 배열을 다 탐색한 후 종료 조건을 만족하고 재귀를 종료한다.  Co..

Dev/Programmers 2024.12.17

DFS

DFS(Depth-First Search, 깊이 우선 탐색) 알고리즘 DFS는 그래프나 트리에서 깊이 우선으로 노드를 탐색하는 방법입니다. DFS는 한 번에 가능한 한 깊이 내려가다가 더 이상 내려갈 곳이 없으면 이전 단계로 돌아가서 다른 경로를 탐색하는 방식입니다. DFS는 트리나 그래프의 구조를 탐색할 때 유용하며, 경로 탐색, 미로 찾기, 사이클 탐지 등의 문제에서 활용될 수 있습니다. DFS 동작 방식:1. 시작 노드에서 시작하여, 그 노드와 연결된 노드들을 깊이 우선으로 탐색합니다.2. 방문한 노드는 다시 방문하지 않도록 표시합니다.3. 더 이상 방문할 노드가 없으면, 이전 노드로 돌아가서 탐색을 계속합니다.4. 모든 노드를 탐색할 때까지 이 과정을 반복합니다.DFS의 특징:- 시간 복잡도: 그..

Dev/Algorithm 2024.11.13