Kotlin/코딩테스트

[프로그래머스] 대충 만든 자판 - kotlin

깨노비 2023. 4. 3. 00:14
728x90
반응형

휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다.

import kotlin.math.min

class Solution {
    fun solution(keymap: Array<String>, targets: Array<String>): IntArray {
        val answer = mutableListOf<Int>()
        val map = mutableMapOf<Char, Int>()

        for (key in keymap) {
            for ((idx, value) in key.withIndex()) {
                val cnt = idx + 1
                map[value] = min(map[value] ?: cnt, cnt)
            }
        }

        for (target in targets) {
            var sum = 0
            for (chr in target.toList()) {
                if (map[chr] == null) {
                    sum = -1
                    break
                }
                sum += map[chr]!!
            }
            answer.add(sum)
        }

        return answer.toIntArray()
    }
}
728x90
반응형