코틀린(Kotlin)/프로그래머스

[프로그래머스/코틀린(Kotlin)] 제일 작은 수 제거하기

초보왕보초 2023. 11. 2. 17:46
728x90

정수 배열 arr에서 가장 작은 수를 제거하기

but, 빈 배열인 경우엔 -1을 리턴하기

예시)

 

풀이

  • filterNot을 사용해서 minOrNull() 제거하기
  • 빈 배열(인덱스가 0인)은 intArrayOf(-1)로 -1 리턴하기

 

제출 코드

(코드 해석해 보기)

빈 배열일 경우 -1을 리턴하기 위해 arr.size가 1일 때 intArrayOf(-1)로 -1을 리턴 시킨다

filterNot을 사용해서 minOrNull()을 제외하고 리턴 시킨다

(filterNot 대신 filter를 사용하고 it != arr.minOrNull() 해도 된다)

리스트가 Int형이기 때문에 toIntArray()로 변형시켜 준다

 

 

 


 

 

 

filterNot을 사용하는 것까진 좋았다

그런데 arr.minOrNull()이 아니라 arr.min()으로 썼다가 계속 실행되지 않아서 이유를 찾아보니,

 

코틀린 1.4.0 버전부터는 min(), max() 컬렉션 함수의 이름이 minOrNull(), maxOrNull()으로 사용된다고 한다

리시버 컬렉션이 비었을 경우 null을 반환하기 때문에 좀 더 구체적으로 명시하려고 한 듯하다

 

23.11.02 기준으로, 프로그래머스의 코틀린은 1.6.10 버전이다

 

하지만, 코틀린 1.7.0 버전에서부터 다시 min()과 max()를 사용할 수 있다고 한다

728x90