코딩 테스트(Coding Test)/프로그래머스

[프로그래머스] 최댓값과 최솟값 - 자바(Java)

잇트루 2023. 8. 11. 00:26
반응형

문제 링크

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"을 리턴하면 됩니다.

 

 

제한사항

  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.



입출력 예

s return
"1 2 3 4" "1 4"
"-1 -2 -3 -4" "-4 -1"
"-1 -1" "-1 -1"

 

 

코드

class Solution {
    public String solution(String s) {
        // 주어진 문자열을 공백을 기준으로 나눠서 문자열 배열로 저장
        String[] sArr = s.split(" ");

        // 최대값과 최소값을 첫 번째 문자열로 초기화
        int max = Integer.parseInt(sArr[0]);
        int min = Integer.parseInt(sArr[0]);

        // 문자열 배열을 순회하며 최대값과 최소값을 계산
        for (String str : sArr) {
            int temp = Integer.parseInt(str);

            // 현재 숫자가 최소값보다 작으면 최소값을 업데이트
            if (min > temp) {
                min = temp;
            }

            // 현재 숫자가 최대값보다 크면 최대값을 업데이트
            if (max < temp) {
                max = temp;
            }
        }

        return min + " " + max;
    }
}

코드 설명

주석 참고

  • 이 문제는 주어진 문자열에서 숫자들을 추출하여 최솟값과 최댓값을 찾아 반환하는 문제다.
  • 입력 문자열 s를 공백(" ")을 기준으로 나누어 문자열 배열 sArr에 저장한다.
  • 최댓값 max와 최솟값 min을 첫 번째 숫자로 초기화한다.
  • sArr 배열을 순회하여 현재 숫자를 나타내는 temp에 각 숫자를 정수로 변환한다.
  • temp가 min보다 작으면 min 값을 temp로 업데이트한다.
  • temp가 max보다 크면 max 값을 temp로 업데이트한다.
반응형