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
'코틀린(Kotlin) > 프로그래머스' 카테고리의 다른 글
[프로그래머스/코틀린(Kotlin)] 수박수박수박수박수박수박수? (0) | 2023.11.03 |
---|---|
[프로그래머스/코틀린(Kotlin)] 가운데 글자 가져오기 (1) | 2023.11.03 |
[프로그래머스/코틀린(Kotlin)] 없는 숫자 더하기 (0) | 2023.11.02 |
[프로그래머스/코틀린(Kotlin)] 핸드폰 번호 가리기 (0) | 2023.11.01 |
[프로그래머스/코틀린(Kotlin)] 음양 더하기 (1) | 2023.11.01 |