[BOJ 실버2] 비슷한 단어 Kotlin

문제

설명

  • 단어에 등장하는 문자를 순서대로 별도로 저장한 후 순서대로 0,1,2... 로 치환하고 Map에 저장한다.
  • 치환된 문자열이 맵에 있는지 확인하고 그 개수만큼 카운트한다.

코드

fun main() = with(System.`in`.bufferedReader()){
    val map = HashMap<String,Int>()
    val n = readLine().toInt()
    var cnt= 0
    for(i in 1..n){
        var str = readLine()
        var sequence = ArrayList<Char>()
        for(t in str){
            if(!sequence.contains(t)){
                sequence.add(t)
            }
        }
        for(j in 0 until sequence.size){
            str = str.replace(sequence[j],j.toChar())
        }
        if(map.contains(str)){
            cnt += map[str]!!
            map.put(str,map[str]!!+1)
        }
        else{
            map[str] = 1
        }
    }
    println(cnt)
}

좋은 웹페이지 즐겨찾기