본문 바로가기
알고리즘

[코딩 테스트] Level. 1 둘만의 암호 (kotlin,코틀린)

by 개발_블로그 2023. 6. 16.
반응형

 

나의 풀이 법 

테스트 문제는 통과하였으나 , 제출했을 때 런타임 에러가 나서 실패하였다.

 

private fun solution(s: String, skip: String, index: Int): String {
    var answer = ""
    val list = ('a'..'z').toList()
    s.forEach {
        val index2 = list.indexOf(it) + index
        val c = ((it..list[index2]).count { l -> skip.contains(l) } + index2) % list.size
        answer += list[c]
    }
    return answer
}

 

어쩔 수 없이 다른 분의 풀이 법을 보았다. 

그렇게 차이나 보이진 않는데.. 잘 통과 되었다. 

private fun solution2(s: String, skip: String, index: Int): String {
    var answer: String = ""
    val skipped = skip.map { it.toChar() }
    val alphabet = ('a'..'z').filter { it !in skipped }

    s.forEach {
        val i = (alphabet.indexOf(it) + index) % alphabet.size
        answer += alphabet[i]
    }
    return answer
}
반응형