Programmers/Level. 2

[프로그래머스, Java] 최댓값과 최솟값

baebaebae 2022. 12. 22. 15:25
728x90

문제 설명

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

 

 

제한 조건

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

 

입출력 예

s return
"1 2 3 4" "1 4"
"-1 -2 -3 -4" "-4 -1"
"-1 -1" "-1 -1"

 

 

import java.util.Arrays;

class Solution {
    public String solution(String s) {
        String answer = "";
        int[] arr = Arrays.stream(s.split(" ")).mapToInt(Integer::parseInt).toArray();

        int max = arr[0];
        int min = arr[0];

        for(int i=0; i<arr.length; i++){
            if(arr[i] > max){
                max = arr[i];
            }
            if(arr[i] < min){
                min = arr[i];
            }
        }

        answer = min + " " + max;

        return answer;
    }
}

 

내가 처음 푼 코드

Arrays.stream을 처음 사용해봤다

 

 

import java.util.Arrays;

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] arr = s.split(" ");
        int[] intarr = new int[arr.length];
        
        for(int i=0; i<intarr.length; i++){
            intarr[i] = Integer.parseInt(arr[i]);
        }
        
        Arrays.sort(intarr);
        
        answer = intarr[0] + " " + intarr[intarr.length - 1];
        return answer;
    }
}

 

살짝 참고해서 변형한 코드

Arrays.sort를 사용해서 오름차순으로 정렬 후, 순번을 출력함

따로 min, max를 구하지 않아서 조금 더 간단해보이는 느낌(?)

 

 

728x90