[Kotlin] 프로그래머스 - 최댓값과 최솟값
Kotlin문제
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
제한사항
s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예
입출력 예 #1
- 입력: "1 2 3 4"
- 출력: "1 4"
입출력 예 #2
- 입력: "-1 -2 -3 -4"
- 출력: "-4 -1"
입출력 예 #3
- 입력: "-1 -1"
- 출력: "-1 -1"
코드 1
kotlin
class Solution {
fun solution(s: String): String {
var min = Int.MAX_VALUE
var max = Int.MAX_VALUE * -1
s.split(" ").forEach {
min = minOf(it.toInt(), min)
max = maxOf(it.toInt(), max)
}
return "$min $max"
}
}
text
테스트 1 〉 통과 (20.70ms, 63.3MB)
테스트 2 〉 통과 (26.41ms, 61.3MB)
테스트 3 〉 통과 (19.38ms, 62.5MB)
테스트 4 〉 통과 (17.34ms, 61.3MB)
테스트 5 〉 통과 (21.57ms, 61.2MB)
테스트 6 〉 통과 (17.03ms, 61.6MB)
테스트 7 〉 통과 (17.00ms, 63.2MB)
테스트 8 〉 통과 (16.63ms, 60.9MB)
테스트 9 〉 통과 (18.67ms, 62.5MB)
테스트 10 〉 통과 (19.15ms, 61.4MB)
테스트 11 〉 통과 (23.98ms, 61MB)
테스트 12 〉 통과 (17.52ms, 61MB)
코드 2
kotlin
class Solution {
fun solution(s: String): String {
return s.split(" ").map { it.toInt() }.sorted().let { "${it.first()} ${it.last()}" }
}
}
- 프로그래머스 컴파일 버전 이슈인지 min(), max() 사용 못하고 정렬 후 first(), last() 사용
text
테스트 1 〉 통과 (45.34ms, 64.9MB)
테스트 2 〉 통과 (40.45ms, 65.4MB)
테스트 3 〉 통과 (38.93ms, 65.4MB)
테스트 4 〉 통과 (45.06ms, 65.1MB)
테스트 5 〉 통과 (32.97ms, 64.4MB)
테스트 6 〉 통과 (32.40ms, 64.4MB)
테스트 7 〉 통과 (33.80ms, 64.4MB)
테스트 8 〉 통과 (34.29ms, 64.6MB)
테스트 9 〉 통과 (46.71ms, 64.4MB)
테스트 10 〉 통과 (35.72ms, 64.6MB)
테스트 11 〉 통과 (32.11ms, 64.7MB)
테스트 12 〉 통과 (33.46ms, 64.5MB)
코드 3
kotlin
class Solution {
fun solution(s: String): String {
return s.split(" ").sortedBy { it.toInt() }.let { "${it.first()} ${it.last()}" }
}
}
text
테스트 1 〉 통과 (59.22ms, 63.9MB)
테스트 2 〉 통과 (38.02ms, 66.2MB)
테스트 3 〉 통과 (56.48ms, 64.5MB)
테스트 4 〉 통과 (46.43ms, 64.8MB)
테스트 5 〉 통과 (40.38ms, 65.7MB)
테스트 6 〉 통과 (38.56ms, 64.6MB)
테스트 7 〉 통과 (38.30ms, 64.9MB)
테스트 8 〉 통과 (40.50ms, 65.1MB)
테스트 9 〉 통과 (53.86ms, 64.7MB)
테스트 10 〉 통과 (55.25ms, 65.2MB)
테스트 11 〉 통과 (42.85ms, 65.3MB)
테스트 12 〉 통과 (43.26ms, 64.9MB)