본문 바로가기
정리/알고리즘

DFS - 단어변환

by Hudini30 2022. 3. 18.

프로그래머스 (DFS) 단어변환

해당 문제는 DFS을 통해 풀었습니다. DFS 관련 문제가 아니였으면 못풀었을듯 합니다. 다른 분들 코드와 유사하게 단어가 1개만 다를 경우 다시 dfs를 호출해 다음 1개만 다른 단어를 찾는 방식입니다. 전체를 탐색해야하기 때문에 방문후 visited를 false로 다시 되돌렸습니다.

private static boolean[] visited;

    public int solution(String begin, String target, String[] words) {
        visited = new boolean[words.length];

        return dfs(begin, target, words, 0);
    }

    public int dfs(String begin, String target, String[] words, int cnt) {
        if (begin.equals(target)) {
            return cnt;
        }

        int answer = 0;

        for (int i = 0; i < words.length; i++) {
            if (visited[i]) {
                continue;
            }

            int k = 0;
            for (int j = 0; j < begin.length(); j++) {
                if (begin.charAt(j) == words[i].charAt(j)) {
                    k++;
                }
            }

            if (k == begin.length() - 1) {
                visited[i] = true;
                answer = dfs(words[i], target, words, cnt + 1);
                visited[i] = false;
            }
        }

        return answer;
    }

'정리 > 알고리즘' 카테고리의 다른 글

해시 - 로또의 최고 순위와 최저 순위  (0) 2022.03.22
해시 - 신고결과받기  (0) 2022.03.21
그래프 - 가장 먼 노드  (0) 2022.03.17
이분탐색 - 징검다리  (0) 2022.03.16
DFS - 네트워크  (0) 2022.03.15

댓글