코딩 테스트

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

ImKDM 2022. 9. 8. 23:19
728x90

문제


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

 

 

-  출력 예시  -

정답 코드


<  내 정답 코드  >

class Solution {
    public String solution(String s) {
        String[] strArr = s.split(" ");

        int[] numArr = new int[strArr.length];
        int idx = 0;
        for (String str : strArr) {
            numArr[idx++] = Integer.parseInt(str);
        }

        Arrays.sort(numArr);

        String answer = numArr[0] + " " + numArr[numArr.length - 1];

        return answer;
    }
}

이것을 주의하자!


-  일단 String 문자열을 split( ) 메서드를 이용해서 String 배열로 만든다. 해당 문제에선 빈칸으로 각 문자가 구분되어 있기 때문에 split( "  " ) 으로 했다. 이후 배열을 정렬하기 위해  int [ ] 배열에 형변환으로 넣는다. 그리고 정렬을 시키고 가장 앞에 있는 원소와 가장 뒤에 있는 원소를 반환했다.

 

-  타인 답변 코드들도 비슷했다. 결국 split( ) 를 통해 String 배열을 만들고, 이후 parseInt( ) 로 int 형으로 만든 다음 비교를 하는 로직이다.