Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- hackerrank
- PriorityQueue
- contentToString
- dynamic programming
- lastIndex
- programmers
- intarray
- Main
- dp
- GREEDY
- heap
- foreach
- sortedBy
- 프로그래머스
- Poll
- 2020
- 코틀린
- 동적계획법
- Java
- report
- booleanarray
- 2D Array
- Util
- Recursion
- Queue
- 알고리즘
- solution
- Developer
- indices
- Kotlin
Archives
- Today
- Total
Code in
프로그래머스 깊이/너비 우선 탐색 단어 변환 with Kotlin 본문
프로그래머스 깊이/너비 우선 탐색 단어 변환 문제입니다.
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
'알고리즘 스터디_문제풀이' 카테고리의 다른 글
프로그래머스 해시 - 위장 with Kotiln (1) | 2020.08.30 |
---|---|
프로그래머스 깊이/너비 우선 탐색 여행경로 with Kotlin (0) | 2020.08.30 |
프로그래머스 깊이/너비 우선 탐색 네트워크 with Kotlin (1) | 2020.08.26 |
프로그래머스 깊이/너비 우선 탐색 타겟 넘버 with kotlin (1) | 2020.08.25 |
프로그래머스 동적계획법 N으로 표현 with Kotlin (2) | 2020.08.23 |
Comments