본문 바로가기
알고리즘/프로그래머스

[2023-06-14] [프로그래머스 lv1] 대충 만든 자판 (Kotlin)

by joh9911 2023. 6. 14.

 

최소 횟수를 구하는 것이므로, 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
        }
    }
}

댓글