본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 최댓값 만들기(1) Kotlin

by Bhinney 2023. 10. 25.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


❓문제

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.


제한사항
  • 0≤ numbers의 원소 ≤ 10,000
  • 2≤ numbers의 길이 ≤ 100

📎 예시


✍🏻 풀이 설명 및 최종 풀이

  • 코틀린 함수 중 sortDescending()을 이용해서 내림차순으로 정렬해주었다.
  • 그리고 가장 큰 두 수의 곱이 가장 크기 때문에, 배열의 첫번째 값과 두번째 값을 곱해주었다.
fun solution(numbers : IntArray) : Int {
   numbers.sortDescending()
   
   return numbers[0] * numbers[1]
}

✍🏻 다른 사람의 풀이

 

fun solution1(numbers: IntArray): Int = numbers.sorted().let { it[it.size - 1] * it[it.size - 2] }
fun solution2(numbers: IntArray): Int = numbers.sorted().takeLast(2).fold(1) {i, acc -> acc * i}

 

 


댓글