본문 바로가기

DFS3

[프로그래머스] (깊이/너비 우선 탐색) 단어 변환 단어집합을 탐색해 나가면서 한 글자만 다른 단어를 찾아낸 후, 그 단어로 다시 탐색을 시작하여 최종 타겟단어와 일치할 때까지의 탐색 깊이를 측정한다. 단, 최종 타겟 단어에 이르기 까지 여러가지 경로가 있을 수 있는데, 이 중 가장 짧은 길이를 반환하면 된다. 타겟 단어와 1개의 알파벳만 다른지 판별하는 함수는 별도로 작성했다. class Solution { int answer = Integer.MAX_VALUE; public int solution(String begin, String target, String[] words) { boolean[] isChecked = new boolean[words.length]; dfs(begin, target, words, isChecked, 0); if (ans.. 2021. 4. 7.
[프로그래머스] (깊이/너비 우선 탐색) 네트워크 Computer를 탐색해나가며 나와 연결된 Computer를 찾아서 하나의 네트워크로 묶어야 한다. 1. 1번 컴퓨터를 시작으로 탐색을 시작한다. isConnect[0] = true 마킹2. 1번 컴퓨터와 연결된 컴퓨터를 찾는다.(computers[?][0] == 1 인것)3. 3번째 배열에서 computers[2][1] == 1 을 만족하므로 isConnect[2] = true 마킹4. 다음 탐색을 시작한다. 5. 다시 3번 컴퓨터와 연결된 컴퓨터를 찾는다.(computers[?][2] == 1 인것)6. 4번째 배열에서 computers[3][2] == 1 을 만족하므로 isConnect[3] = true 마킹7. 다음 탐색을 시작한다.8. 4번 컴퓨터와 연결된 컴퓨터를 찾는다.(comcomputer.. 2021. 3. 29.
[프로그래머스] (깊이/너비 우선 탐색) 타겟 넘버 입력 배열 노드를 순차로 탐색 하면서 매 탐색시 양갈래(지나온 노드들의 sum에서 현재노드를 +하는 경우, -하는경우) 로 탐색하며 재귀호출 하여 마지막 노드에 도달했을때 노드들의 sum이 타겟 넘버와 같으면 타겟 적중을 +1 한다. class Solution { public int solution(int[] numbers, int target) { int answer = 0; answer = calcNum(numbers, 0, target, 0); return answer; } public static int calcNum(int[] source, int index, int target, int sum) { // 마지막 노드에 도달했을 때 if(index == source.length) { // 타겟 .. 2021. 3. 28.
반응형