[Refresh ! 코딩 테스트 / js] -433. Minimum Genetic Mutation

정대만·2025년 3월 1일

문제 해석

  • 저번에 프로그래머스에서 푼 문제여서 금방풀었다.
  • startGene 에서 하나만 다른 글자만 이동할수 있다.
  • 하나만 다른 글자는 bank 에 들어있다.
  • bfs 으로 풀면되겠다. 싶었다.

나의 풀이

/**
 * @param {string} startGene
 * @param {string} endGene
 * @param {string[]} bank
 * @return {number}
 */
var minMutation = function(startGene, endGene, bank) {

// 예전에 한번 풀어본 bfs 문제라고 생각
function check_is_one (arr1,arr2){
 let check_count=0
 for(var i=0; i<arr1.length; i++){
    //어쩌피 전체다 확인해야되니까 
     if(arr1[i]!=arr2[i]) check_count+=1;
 }
 return check_count==1 ?true: false;
}

let queue=[[startGene,0]]

while(queue.length>0){
   let [first,count]= queue.shift()
   if(first==endGene){
    return count;
   }
   for(var i=0; i<bank.length; i++){
    if(bank[i]!=0 && check_is_one(first,bank[i]) ){
        // 인경우에만 queue 에 넣는 bfs 
        queue.push([bank[i],count+1])
        bank[i]=0;
    }
   }

}
return -1;


};
profile
안녕하세요

0개의 댓글