본문 바로가기
Java/알고리즘

최댓값과 최솟값

by 티코딩 2023. 4. 18.

출처 - 프로그래머스

아 쉽네~ 했다.

문자열을 split으로 나누고, 배열의 최댓값 최솟값을 return하면 되겠네 했는데 무슨일인지

class Solution {
    public String solution(String s) {
        String str[] = s.split(" ");
        Arrays.sort(str);
        String answer = str[0] + " " + str[str.length-1];
        return answer;
    }
}

이렇게 했는데, Arrays.sort(str); 여기서 오류가 발생했다.

엥? 되는데?

혹시나 인텔리제이에서 해봤다.

String a 를 예시처럼 "-1 -2 -3 -4"로 바꾸고 돌려보니, -1 -4 가 출력이됐다.

쉬바

다시풀어야지!

어거지...

그냥 처음에 생각했던 for문을 돌려서 해보니 결국 풀리긴했는데...코드가 너무너무 더럽다. 찝찝해서 다시 풀어봐야겠다.

혹시나 해서 우리의 친구 gpt에게 풀어보라고 하니 근간은 비슷하게 푼것같아 나름 만족했다.

public String solution(String s) {
    String[] numbers = s.split(" ");  // 문자열 s를 공백으로 분리하여 배열에 저장
    int max = Integer.parseInt(numbers[0]);  // 배열의 첫번째 값으로 초기화
    int min = Integer.parseInt(numbers[0]);  // 배열의 첫번째 값으로 초기화

    // 배열을 순회하며 최대값과 최소값 찾기
    for (int i = 1; i < numbers.length; i++) {
        int num = Integer.parseInt(numbers[i]);
        if (num > max) {
            max = num;
        }
        if (num < min) {
            min = num;
        }
    }

    return min + " " + max;  // 최소값과 최대값을 문자열로 반환
}

역시 얘가 훨씬 깔끔하긴하다.