🗒 문제

📝 나의 문제풀이
class Solution {
fun solution(array: IntArray): IntArray {
val max = array.maxOrNull()!!
return intArrayOf(max, array.indexOf(max))
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(array: IntArray): IntArray = array.maxOrNull().let {
intArrayOf(it ?: 0, array.indexOf(it ?: 0))
}
}
🖊 문제 풀이 시 알면 좋을 것
maxOrNull()
- 배열에서 가장 큰 값을 가져오는 표준 함수
- 반환 타입: Int? (nullable)
- 이유: 배열이 비어 있을 수도 있기 때문
- 그래서 !! 또는 ?: 로 처리해야 함
val max = array.maxOrNull()!! // 비어 있지 않다는 조건이 있을 때
indexOf(value)
- 주어진 값이 처음 등장하는 인덱스를 반환
- 찾지 못하면 -1 반환
- 문제의 조건상 중복이 없어서 바로 사용 가능
let {}
- 람다 스코프 함수
- null을 포함한 값에 대해 작업을 묶어 처리할 때 유용
- 다른 사람 풀이처럼 nullable 값을 ?:로 처리하면서 사용하기 좋음
val result = maxOrNull().let { value ->
intArrayOf(value ?: 0, array.indexOf(value ?: 0))
}
문제의 제약 조건 활용하기
- 길이 1~100 → 빈 배열 아님
- 중복 없음 → max 찾고 indexOf 해도 문제 없음
- 원소 0~1000 → int 범위 매우 안전
이 조건 덕분에 이 문제는
maxOrNull()!! + indexOf(max)
조합으로 간단하게 해결 가능.
반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 배열 뒤집기 (0) | 2025.12.19 |
|---|---|
| 코딩테스트 대비 기본기 — 반드시 알아야 할 Kotlin 문법 (0) | 2025.12.10 |
| [프로그래머스] 택배 상자 꺼내기 (0) | 2025.11.11 |
| [프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기 (0) | 2025.11.10 |
| [프로그래머스] 특별한 이차원 배열 2 (0) | 2025.09.10 |