알고리즘/백준
[백준] 2753번: 윤년 - 코틀린(Kotlin)
Junuuu
2022. 10. 31. 00:01
반응형
https://www.acmicpc.net/problem/2753
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
문제 해석
문제에 나온 절차대로 윤년을 판별하면 되는 문제입니다.
- 4의 배수이면서 100의 배수가 아니여야 함
- 400의 배수이면 됨
막상 구현할 때는 400의 배수는 4의 배수이면서 100의 배수이기 때문에 400의 배수를 먼저 판별해야 했던 문제였습니다.
코드
fun main() {
val input = readLine()!!.toInt()
println(isLeapYear(input))
}
fun isLeapYear(year: Int) = when {
(year % 400) == 0 -> LEAP_YEAR
(year % 4) == 0 &&
(year % 100) != 0 -> LEAP_YEAR
else -> YEAR
}
const val LEAP_YEAR = 1
const val YEAR = 0
다른 분들의 코드에서 배운 점
fun main() {
val input = readLine()!!.toInt()
println(isLeapYear(input))
}
fun isLeapYear(year: Int) = when {
(year % 400) == 0 -> LEAP_YEAR
(year % 100) != 0 -> YEAR
(year % 4) == 0 -> LEAP_YEAR
else -> YEAR
}
const val LEAP_YEAR = 1
const val YEAR = 0
이런 방식으로 쪼개서 구현하여 가독성을 높이는 방법도 있습니다.