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

프로그래머스 최댓값과 최솟값 kotlin (파싱)

by 옹구스투스 2021. 7. 3.
반응형

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12939

 

코딩테스트 연습 - 최댓값과 최솟값

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

programmers.co.kr

문제 설명

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

제한 조건

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

입출력 예

풀이

'프로그래머스 / 연습문제 / 최댓값과 최솟값'으로 분류되어 있는 문제이다.

split()함수를 사용해 문자열을 공백 기준으로 분리함과 동시에, map함수를 원소들을 int형으로 바꾸면

ArrayList<Int>형의 컬렉션을 만들 수 있다.

해당 컬렉션에 max()함수와 min()함수로 최댓값과 최솟값을 Kotlin의 문자열 템플릿을 이용해 리턴하였다. 

 

 

map

-각 원소를 원하는 형태로 변환하여 새 컬렉션을 만든다.

-새 컬렉션은 원본 리스트와 원소 개수가 같고, 각 원소는 주어진 람다(함수)에 따라 변환된다.

map 함수는 각 원소를 원하는 형태로 변환하는 기능을 하며, 변환한 결과를 모아서 새 컬렉션을 만듭니다.

결과는 원본 리스트와 원소 개수는 같지만, 각 원소는 주어진 람다(함수)에 따라 변환된 새로운 컬렉션입니다. 

 

코드

class Solution {
    fun solution(s: String): String {
       var arr =s.split(" ").map{it.toInt()}
        return "${arr.min().toString()} ${arr.max().toString()}"
    }
}
반응형

댓글