카테고리 없음
[Lv.3] 단어 변환-자바
시롱시롱
2023. 7. 5. 23:06
class Solution {
static String[] wordArr;
static boolean[] visited;
static int minAns=Integer.MAX_VALUE;
public int solution(String begin, String target, String[] words) {
int answer = 0;
wordArr =words.clone();
visited=new boolean[words.length];
dfs(begin,target,0);
return minAns==Integer.MAX_VALUE?0:minAns;
}
private void dfs(String now, String target,int depth) {
if(now.equals(target)){
minAns=Math.min(minAns,depth);
return;
}
if(depth>=minAns)
return;
for (int i = 0; i < wordArr.length; i++) {
if(visited[i])
continue;
String word=wordArr[i];
if(compareTarget(word,now)){
//can jump
visited[i]=true;
dfs(word,target,depth+1);
visited[i]=false;
}
}
}
private boolean compareTarget(String word, String now) {
int falseCount=0;
for (int i = 0; i < word.length(); i++) {
if(word.charAt(i)!=now.charAt(i))
falseCount++;
}
if(falseCount==1)
return true;
return false;
}
}
무난한 dfs문제였다.