티스토리 뷰

Kotlin(native / JVM)으로 풀어보기


11654 아스키 코드 (native)

fun main() {
    println(readLine()!!.single().toInt())
}

 

11720 숫자의 합 (native)

fun main() {
    val count = readLine()!!.toInt()
    println(readLine()!!.chunked(1).subList(0, count).map { it.toInt() }.sum())
}

 

10809 알파벳 찾기 (JVM)

fun main() {
    readLine()!!.apply {
        for (key in 'a'..'z') {
            print("${this.indexOf(key)} ")
        }
    }
}

 

2675 문자열 반복 (native)

fun main() {
    repeat(readLine()!!.toInt()) {
        readLine()!!.split(" ").apply {
            this[1].chunked(1).map { it.repeat(this[0].toInt()) }.forEach { print(it) }
            println()
        }
    }
}

 

 

1157 단어 공부 (JVM)

// getOrDefault 메서드를 잘 활용하자

fun main() {
    val basket = mutableMapOf<Char, Int>().apply {
        readLine()!!.forEach {
            val key = it.toUpperCase()
            this[key] = this.getOrDefault(key, 0) + 1
        }
    }
    val keys = basket.filter { it.value == basket.values.max() }.keys

    println(
        if (keys.size > 1) "?"
        else keys.first()
    )
}

 

1152 단어의 개수 (JVM)

// 문자열이 입력일 경우에는 "", " ", null을 확인하는 습관을 가지자.

fun main() {
    readLine()!!.trim().split(" ").run {
        if (this[0] == "") println(0)
        else println(this.size)
    }
}

 

2908 상수 (native)

fun main() {
    val (a, b) = readLine()!!.split(" ").map { it.reversed().toInt() }

    println(if (a > b) a else b)
}

 

5622 다이얼 (native)

// 알파벳이 없거나 아닌 부분에 대해 고민을 하느라 시간을 허비했다.
// 주어진 내용 이외에는 생각하지 않는다.

fun number(num: Char): Int {
    return when {
        num < 'P' -> 3 + (num - 'A') / 3
        num < 'T' -> 8
        num < 'W' -> 9
        else -> 10
    }
}

fun main() {
    println(readLine()!!.fold(0, { total, next -> total + number(next) }))
}

 

2941 크로아티아 알파벳 (native)

// 처음 풀이가 너무 마음에 들지 않았다.

fun main() {
    val array = arrayListOf<String>().apply {
        this.add("c=")
        this.add("c-")
        this.add("dz=")
        this.add("d-")
        this.add("lj")
        this.add("nj")
        this.add("s=")
        this.add("z=")
    }

    var text = readLine()!!

    for (i in array.indices) {
        text = text.replace(array[i], " ")
    }

    println(text.length)
}

// 다른 풀이 참고(풀이 이후 백준 소스 보기 참고) - 정규표현식을 이용 !!

fun main() {
    println(Regex( "((c|dz|s|z)=)|(([cd])-)|(([ln])j)|.").findAll(readLine()!!).count())
}

 

1316 그룹 단어 체커 (native)

// 다른 풀이 참고(https://geehye.github.io/baekjoon-1316) - 해당 문제는 풀지 못함

fun main() {
    var sum = 0

    repeat(readLine()!!.toInt()) {
        var flag = true

        mutableListOf<Char>().apply {
            readLine()!!.forEach {
                when {
                    this.isEmpty() || !this.contains(it) -> this.add(it)
                    this[this.size - 1] != it -> flag = false
                }
            }
        }

        if (flag) sum += 1
    }

    println(sum)
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함