알고리즘 문제 풀이/백준

[Algorithm] 백준 - 음계 (2920) (Kotlin)

참깨빵위에참깨빵_ 2024. 7. 6. 20:54
728x90
반응형

 

오름차순, 내림차순, 무작위로 배치된 숫자들 중 뭘 받냐에 따라 각각 다른 문자열을 리턴하면 된다.

 

fun main() {
    val numbers = readln().split(" ").map { it.toInt() }

    var isAscending = true
    var isDescending = true

    for (i in 0..< numbers.size - 1) {
        if (numbers[i] < numbers[i + 1]) {
            isDescending = false
        } else if (numbers[i] > numbers[i + 1]) {
            isAscending = false
        }
    }

    when {
        isAscending -> println("ascending")
        isDescending -> println("descending")
        else -> println("mixed")
    }
}

 

오름차순과 내림차순을 구분하는 방법은 리스트를 순회하면서 앞 원소보다 뒤 원소가 큰지 확인하면 된다.

반복문을 사용하기 때문에 오름차순으로 이뤄진 숫자들이라면 isDescending은 계속 false가 되고 isAscending은 true로 초기화된 상태에서 변하지 않을 것이다. 반복문이 끝난 후에도 동일하다면 when에서 문제에 맞춰 글자를 출력하면 된다.

내림차순의 경우에도 비슷하고, 무작위 숫자인 경우 두 Boolean 변수 모두 false가 될 것이기 때문에 when에서 else로 빠지게 된다.

반응형