코딩테스트/BaekJoon

[kotlin] BOJ 10250 ACM 호텔

grove1212 2024. 10. 23. 15:38

split

구분자를 지정해 split할 수 있다.

map

중괄호 람다함수식을 이용해 int로 바꿀 수 있다.

let

호출 대상이 0이 아닌 경우에만 열리니 null safe 기능을 가지고 있다.

let 내부에서는 전달된 객체를 it으로 사용할 수 있다. (람다함수식으로 표현 가능)

?

?. : 안전한 호출 연산자

현재 x는 Int?타입으로 선언되어있음 nullable이기 때문에 null에 관한 처리를 해줌

nullable

  • Non-Nullable 타입: val name: String = "Alice"
  • Nullable 타입: val name: String? = null

Kotlin에서는 안전한 호출 연산자(?.)를 사용하여 Nullable 변수에 접근할 수 있다. 이 연산자는 해당 변수나 객체가 null일 경우 null을 반환하고, null이 아닐 경우 특정 작업을 수행합니다.

내 코드

gpt에게 문법 도움을 받으며 작성

import java.io.BufferedReader
import java.io.InputStreamReader

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val t = br.readLine().toInt()
    repeat(t) {
        val group = br.readLine()
            ?.split(" ")
            ?.map { it.toInt() }
        // h, w, n
        val x: Int? = group?.let {
            if (it[2] % it[0] == 0)
                it[2] / it[0]
            else
                (it[2] / it[0]) + 1
        }
        val y: Int? = group?.let {
            if (it[2] % it[0] == 0)
                it[0]
            else
                it[2] % it[0]
        }

        val result: String = y.toString() + x?.let {
            if (it < 10)
                "0$it"
            else it.toString()
        }
        println(result)
    }
}