본문 바로가기
코딩테스트

[백준] 25314번 코딩은 체육과목 입니다 - Kotlin(코틀린)

by Glion 2025. 4. 11.
반응형

25314번 코딩은 체육과목입니다.

 

문제를 확인해보면, N 은 4의 배수로 주어지며, 4 이상 1000 이하이므로, Int 형을 사용해도 상관없다.

 

예제 입력1 과 예제 출력1을 보면 N 을 4로 나눈 몫 만큼 long 을 붙이고 마지막에 int 를 붙이는 모양인 것을 알 수 있다.

 

풀이 코드는 다음과 같다.

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

fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
    try {
        val input = readLine().toInt()
        if(input < 4 || input > 1000) {
            throw Exception("Range Error")
        }
        val loop = input.toInt() / 4
        for(i in 0 until loop) {
            print("long ")
        }
        print("int")
    } catch(e: NumberFormatException) {
        println("NumberFormatException")
    } catch(e : Exception) {
        println("Exception :: ${e.message}")
    }
}

 

입력이 4 이상 1000 이하라고 되어있었지만, try-catch 를 사용하여 입력값이 범위를 벗어났을때 처리를 해주었다.

 

또한, 입력이 정수라고 되어있지만, 만일을 위해 int 로 형변환 했을 경우의 오류 처리 또한 추가해주었다.

 

입력값 N(코드에서는 loop) 만큼 반복하여 long 을 출력해주고, 마지막에 int 를 출력하는 형태로 해결하였다.

 

필자가 한 것처럼 try-catch 를 통한 예외처리는 생략해도 된다. 중요한 부분은

val input = readLine().toInt()
val loop = input.toInt() / 4
for(i in 0 until loop) {
    print("long ")
}
print("int")

 

만 해주면 쉽게 해결되는 문제이다.

반응형