개인공부/알고리즘
프로그래머스 - 최댓값 만들기(2) (Kotlin)
KEEMSY
2023. 7. 28. 14:19
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이는 간단하다. 가장 큰 값과 두번째로 큰 값 끼리의 곱과, 가장 작은 값과 두번째로 작은값 끼리의 곱 중 더 큰 값을 반환하면 된다.
class Solution {
fun solution(numbers: IntArray): Int {
var max1 = Int.MIN_VALUE
var max2 = Int.MIN_VALUE
var min1 = Int.MAX_VALUE
var min2 = Int.MAX_VALUE
for (number in numbers) {
if (number >= max1) {
max2 = max1
max1 = number
} else if (number >= max2) {
max2 = number
}
if (number <= min1) {
min2 = min1
min1 = number
} else if (number <= min2) {
min2 = number
}
}
val maxProduct = max1 * max2
val minProduct = min1 * min2
return maxOf(maxProduct, minProduct)
}
}
이렇게 풀이를 했는데, 다른사람의 풀이를보니 좀더 깔끔하게 작성할 수 있었다.
class Solution {
fun solution(numbers: IntArray): Int {
val sorted = numbers.sorted()
return maxOf(sorted[0] * sorted[1], sorted[sorted.lastIndex] * sorted[sorted.lastIndex - 1])
}
}
왜 정렬을 생각안했을까..
728x90