[Kotlin]PS_8

Hood·2024년 8월 9일

매일PS

목록 보기
8/11
post-thumbnail

✍   Kotlin을 사용한 백준 알고리즘 문제풀이

매일 백준의 알고리즘 문제를 풀며 3문제씩 풀며
한 언어를 마스터 할 것을 목표로 이 글을 작성할 예정입니다.


🔎 2908번

https://www.acmicpc.net/problem/2908

문자열을 받아 뒤집어서 비교하고 큰 것을 출력하는 문제였다.
코틀린에는 .reversed() 라는 문자열을 뒤집을 수 있는 함수가 있기에
그것들을 비교하는 조건문을 넣어 출력해 주었다.

import java.util.Scanner

fun main() {
    val sc = Scanner(System.`in`)
    val n = sc.next().reversed()
    val m = sc.next().reversed()

    if (n > m){ println(n) }
    else { println(m) }
}

🔎 5622번

https://www.acmicpc.net/problem/5622

이번 문제는 시간을 구해야 하는데 다이열에서 뒤로 갈 수록 1초씩 늘어나기에
문자열을 하나 받고 그것을 하나씩 가져온 다음에 when문 을 통해서
해당 문자열이 존재하면 time에 시간을 더해주는 식으로 문제를 해결했다.

fun main() {
    val str = readlnOrNull()
    var time = 0

    for (x in str!!.indices)
    {
        when (str[x])
        {
            'A', 'B', 'C' -> time += 3
            'D', 'E', 'F' -> time += 4
            'G', 'H', 'I' -> time += 5
            'J', 'K', 'L' -> time += 6
            'M', 'N', 'O' -> time += 7
            'P', 'Q', 'R', 'S' -> time += 8
            'T', 'U', 'V' -> time += 9
            'W', 'X', 'Y', 'Z' -> time += 10
        }
    }
    print(time)
}

🔎 11718번

https://www.acmicpc.net/problem/11718

이 문제는 문자열만 하나씩 받아와 출력을 해주면 되기에
말 그대로 무한 반복문에 입력을 받고 그대로 출력해주는 식으로 풀었다.

fun main(){
    while (true) {
        val input = readlnOrNull() ?: break
        println(input)
    }
}

📌결론

문자열을 다루면 다룰수록 코틀린과 가까워 진다는 것이 느껴져서 좋은 문제들이었다.

profile
달을 향해 쏴라, 빗나가도 별이 될 테니 👊

0개의 댓글