최소 횟수를 구하는 것이므로, map에 각 알파벳의 따른 등장 순서의 최솟값을 넣어주었습니다.
class `lv1 대충 만든 자판` {
class Solution {
fun solution(keymap: Array<String>, targets: Array<String>): IntArray {
val map = mutableMapOf<Char,Int>()
// 등장 순서의 최솟값 넣어주기
for (i in keymap.indices){
for (j in keymap[i].indices){
map[keymap[i][j]] = Math.min(map.getOrDefault(keymap[i][j], 200), j+1)
}
}
// map에 저장되어 있는 값을 모두 더하여 저장
val ans = IntArray(targets.size)
for (i in targets.indices){
var sum = 0
for (j in targets[i].indices){
val value = map.getOrDefault(targets[i][j], 0)
if (value == 0){
ans[i] = -1
break
}
else{
sum += value
}
}
if (ans[i] == 0)
ans[i] = sum
}
return ans
}
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[2023-06-14] [프로그래머스 lv1] 개인정보 수집 유효기간 (Kotlin) (0) | 2023.06.14 |
---|---|
[2023-06-14] [프로그래머스 lv1] 카드 뭉치 (Kotlin) (0) | 2023.06.14 |
[2023-06-13] [프로그래머스 lv1] 덧칠하기 (Kotlin) (0) | 2023.06.13 |
[2023-06-13] [프로그래머스 lv1] 바탕화면 정리 (Kotlin) (0) | 2023.06.13 |
[2023-06-13] [프로그래머스 lv1] 공원 산책 (Kotlin) (0) | 2023.06.13 |
댓글