Archives
Recent Posts
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[프로그래머스] 최댓값과 최솟값(Lv.2) - 코틀린 본문

코딩테스트

[프로그래머스] 최댓값과 최솟값(Lv.2) - 코틀린

Wise-99 2023. 5. 14. 03:30
 

프로그래머스

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

programmers.co.kr

 

❓ 문제 설명

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

 

❓ 제한사항

  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

 

✔️ 정답 코드

class Solution {
    fun solution(s: String): String {
        var arr = s.split(" ").map{ it.toInt() }
        return "${arr.minOf{it}.toString()} ${arr.maxOf{it}.toString()}"
    }
}

 

✔️ 코드 해석

  • 주어진 문자열 s를 공백(" ")으로 구분하여 나눈다.(split())
  • 나눈 문자열들을 int형으로 변환한다.
  • minOf{ it }과 maxOf{ it }를 이용하여 최솟값과 최댓값을 구한다.
  • 구한 값들을 toString()으로 형변환한다.

 

다른 분들 풀이를 보면 minOf()와 maxOf()가 아닌 min()과 max()로 구하는데 프로그래머스에서는 오류가 난다.

찾아보니 min()과 max() 함수의 이름이 minOrNull()과 maxOrNull()로 바꼈다고 한다.(코틀린 1.4.0)

reuturn에 있는 코드를 다음과 같이 변경해도 정답으로 나온다.

return "${arr.minOrNull().toString()} ${arr.maxOrNull().toString()}"