본문 바로가기
algorithm/dfs,bfs

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

by blogsy 2020. 8. 25.

https://programmers.co.kr/learn/courses/30/lessons/43163

 

코딩테스트 연습 - 단어 변환

두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수

programmers.co.kr

function solution(begin, target, words) {
  var answer = 0;
  var q = [];
  if (words.indexOf(target) < 0) return 0;

  var cnt = 0;
  q.push([begin, cnt]);

  while (q.length !== 0) {
    var word = q.shift();
    cnt = word[1];
    if (word[0] === target) {
      answer = word[1];
      break;
    }
    for (var w of words) {
      var diff = 0;
      for (var i = 0; i < w.length; i++) {
        if (w[i] === word[0][i]) continue;
        else diff++;
      }
      if (diff === 1) {
        q.push([w, cnt + 1]);
      }
    }
  }

  return answer;
}

bfs 사용

'algorithm > dfs,bfs' 카테고리의 다른 글

[백준/2667] 단지번호붙이기  (0) 2020.04.06
[백준/2606] 바이러스  (0) 2020.04.04
[백준/1260] DFS와 BFS  (0) 2020.04.04

댓글