https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=java

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제

문제 설명
문자열 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"


문제 해결을 위한 과정

 

  • 문자열 분리: s.split(" ")을 이용해 공백 문자 기준으로 숫자들을 잘라 배열에 담습니다.
  • 데이터 타입 변환: 정렬과 크기 비교를 위해 문자열 배열을 순회하며 Integer.parseInt()로 숫자로 바꾼 뒤 ArrayList에 담아줍니다. (이 과정에서 음수 기호 -도 알아서 정수로 잘 변환됩니다.)
  • 정렬: Collections.sort()를 사용해 오름차순으로 정렬합니다.
  • 결과 조립: 정렬되었기 때문에 가장 첫 번째 값(index 0)이 최솟값, 가장 마지막 값(size - 1)이 최댓값이 됩니다. 이를 문자열로 이어 붙여 반환합니다.

소스코드
import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        ArrayList<Integer> arr = new ArrayList<>();
        
        String[] sarr = s.split(" ");
        for(int i = 0; i < sarr.length; i++) {
            arr.add(Integer.parseInt(sarr[i]));
        }
        
        Collections.sort(arr);
        
        answer += String.valueOf(arr.get(0));
        answer += " ";
        answer += String.valueOf(arr.get(arr.size() - 1));
        return answer;
    }
}

 

+ Recent posts