[Kotlin] 코딩테스트 필수 - 최댓값

kimgwon·2024년 11월 6일

Kotlin

목록 보기
17/19

✏️ maxOrNull()

컬렉션의 최댓값을 찾는 함수이다. 컬렉션이 비어 있을 경우 null을 반환한다.
인자를 받지 않으므로 항상 소괄호를 사용한다.

val numbers = listOf(3, 1, 4, 1, 5, 9)
val max = numbers.maxOrNull()  // 소괄호 사용
println(max)  // 출력: 9

✏️ maxOfOrNull {}

특정 조건에 따라 최댓값을 찾는 함수이다. 컬렉션이 비어 있을 경우 null을 반환한다.
람다 표현식을 받아 조건을 기반으로 최댓값을 반환 한다.

data class Person(val name: String, val age: Int)

val people = listOf(Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35))
val maxAge = people.maxOfOrNull { it.age }

println(maxAge)  // 출력: 35

✏️ maxByOrNull {}

특정 조건에 따라 최댓값을 찾는 함수이다. 컬렉션이 비어 있을 경우 null을 반환한다.
람다 표현식을 받아 조건을 기반으로 최댓값을 가진 요소를 반환 한다.

data class Person(val name: String, val age: Int)

val people = listOf(Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35))
val oldestPerson = people.maxByOrNull { it.age }

println(oldestPerson)  // 출력: Person(name=Charlie, age=35)

maxByOrNull vs maxOfOrNull

  • maxByOrNull
    최댓값을 가진 요소를 반환 ex) people.maxByOrNull { it.age } -> Person 객체 반환
  • maxOfOrNull
    최댓값을 반환 ex) people.maxOfOrNull { it.age } -> Int 반환

✏️ maxWithOrNull {}

사용자 정의 Comparator를 사용하여 최댓값을 찾는다.
Comparator를 사용해야 하므로 보통 소괄호 안에 Comparator를 직접 작성한다.

val numbers = listOf(3, 1, 4, 1, 5, 9)
val max = numbers.maxWithOrNull(compareBy { it % 3 })  // 소괄호 사용
println(max)  // 출력: 5 (3으로 나눈 나머지가 최대인 값)

0개의 댓글