java

JAVA 프로그래머스 최댓값과 최솟값

tues 2024. 8. 10. 13:29

https://school.programmers.co.kr/learn/courses/30/lessons/12939

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

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

 

접근 방식

 

1. 공백으로 구분된 숫자

이거를 간과해서 두번 풀었다. 가장 중요한 부분

String[] tmpArr = s.split(" ");
//공백 기준으로 문자열을 나눠서 배열에 저장

 

2. 문자열로 된 숫자를 정수형으로 변환하기

int[] arr = new int[tmpArr.length];
//정수형 배열 먼저 만들기

        for(int i = 0; i < arr.length; i++){
            arr[i] = Integer.parseInt(tmpArr[i]);
            //정수형으로 변환하면서 배열에 하나씩 저장
        }

 

3. 배열 정리하기

Arrays.sort(arr);
//오름차순으로 정렬

 

4. 최솟값, 최댓값 찾기

오름차순으로 정렬하여서 배열의 첫번째 인덱스와 마지막 인덱스를 문자열에 합쳐서 반환하기

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

 

전체 코드

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