알고리즘 문제 풀이/백준

[Algorithm] 백준 - 최댓값 (2562) (Kotlin)

참깨빵위에참깨빵_ 2024. 6. 6. 18:21
728x90
반응형

 

입력받은 9개의 숫자를 담아둘 공간이 필요하니 정수 리스트가 하나 필요하다. 그리고 readln()을 9번 실행해야 하니 9번 반복해서 실행하고, 숫자를 리스트에 담으면 9개의 숫자가 리스트에 모두 들어갈 것이다.

그럼 그 중에서 최대값인 원소와 그 원소의 인덱스를 찾아서 출력하면 된다.

 

fun main() {
    val list = arrayListOf<Int>()
    repeat(9) {
        list.add(readln().toInt())
    }
    val max = list.max()
    val index = list.indexOf(max) + 1
    println("$max $index")
}

 

코틀린에서 반복할 때 사용하는 키워드는 대표적으로 for, while이 있지만 repeat라는 함수도 있다. 이걸 쓰면 for, while을 사용할 때보다 좀 더 가독성 좋게 반복할 수 있다.

 

max()는 리스트에 담긴 원소 중 가장 큰 값을 찾아서 리턴하는 함수다. kotlin.math 패키지에 포함된 max()는 두 값을 입력받아서 둘 중 큰 값을 리턴하지만, import문 없이 사용할 경우 큰 값을 리턴하므로 참고한다.

indexOf()는 매개변수로 넘긴 값의 인덱스를 찾는 함수다. 알다시피 인덱스는 0부터 시작하기 때문에 문제에서 요구하는 인덱스를 찾기 위해선 indexOf()의 결과값에 1을 더해야 한다.

반응형