본문 바로가기

문제 풀이/Programmers

[프로그래머스] 최댓값과 최솟값 (JAVA)

문제 출처 - Programmers

문제는 여기

 

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

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

programmers.co.kr


[풀이]

1. 입력된 문자열을 공백(" ") 기준으로 split() 해서 배열에 담아준다.

2. 1에서 배열에 담긴 값들을 Integer.parseInt()를 사용해 숫자로 변경하여 숫자 배열에 담아준다.

3. 2에서 만들어진 숫자 배열을 Arrays.sort()를 사용해 정렬시켜준다.

4. 최솟값과 최대값을 구해 결과를 출력해준다.

[접근]

1. 문자열로 값이 입력이 되는데 공백을 기준으로 자르면 숫자들로 분리 가능하다는 것을 확인했다.

2. 오름차순으로 정렬해서 최소값과 최댓값을 출력하면 되겠다고 생각했다.

[코드]

import java.util.*;

class Solution {
    public String solution(String s) {
        // 입력받은 문자열을 " "기준으로 잘라서 str배열에 담아주기
        String[] str = s.split(" ");
        // 숫자로 변경시켜서 담기위한 배열
        int[] arr = new int[str.length];
        
        // str배열의 값들을 숫자로 변경시켜 arr배열에 담기
        for (int i = 0; i < str.length; i++) {
            arr[i] = Integer.parseInt(str[i]);
        }
        
        // 배열 정렬 (숫자로 되어있기 때문에 오름차순 정렬)
        Arrays.sort(arr);
        
        // 최솟값
        int min = arr[0];
        // 최댓값
        int max = arr[str.length - 1];
        
        // 문자열 형태로 리턴
        return min + " " + max;
    }
}