Code in

프로그래머스 깊이/너비 우선 탐색 단어 변환 with Kotlin 본문

알고리즘 스터디_문제풀이

프로그래머스 깊이/너비 우선 탐색 단어 변환 with Kotlin

heyhmin 2020. 8. 26. 16:19

프로그래머스 깊이/너비 우선 탐색 단어 변환 문제입니다.

IntelliJ에서의 풀이입니다.

import java.util.*

val begin = "hit"
val target = "cog"
val words = arrayOf("hot", "dot", "dog", "lot", "log", "cog")
fun solution(begin: String, target: String, words: Array<String>): Int {
    var answer = 0
    if (!words.contains(target)) return 0
    val que:Queue<String> = LinkedList<String>()
    words.forEach { que.add(it) }
    var curstr: String = begin
    var quep: String = que.poll()
    var cnt: Int
    while (curstr != target){
        cnt = 0
        for (i in curstr.indices){
            if (curstr[i] != target[i]) cnt++
        }
        if (cnt == 1){
            curstr = quep
            return answer+1
        }
        cnt = 0
        for (i in curstr.indices){
            if (curstr[i] != quep[i]) cnt++
        }
        if (cnt == 1){
            curstr = quep
            answer++
        }
        if (!que.isEmpty()) quep = que.poll()
    }
    return answer
}

fun main() {
    println(solution(begin, target, words)) //4
}

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

 

코딩테스트 연습 - 네트워크

네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있��

programmers.co.kr

Comments