[Java] 최댓값과 최솟값 (programmers)

Haeun Noh·2023년 7월 4일
0

programmers

목록 보기
52/64
post-thumbnail

0704


문제 설명

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


제한 조건

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

입출력 예

sreturn
"1 2 3 4""1 4"
"-1 -2 -3 -4""-4 -1"
"-1 -1""-1 -1"


문제 풀이

이 문제는 공백으로 구분된 숫자들 중에서 최솟값과 최댓값을 구하여 문자열로 리턴하는 문제입니다.

저는 공백을 기준으로 문자열을 잘라 배열에 넣어주는 split()를 사용하였습니다.


    public String solution(String s) {
        String[] arr = s.split(" ");

주어진 문자열을 split()을 사용하여 문자 하나하나를 배열에 넣어줍니다. 이 때, 타입은 문자열 배열입니다.

문자열을 나누는 기준은 " " 공백입니다.


        int max = Integer.parseInt(arr[0]), min = Integer.parseInt(arr[0]);

최댓값과 최솟값을 구하기 위한 기준값을 세팅해줍니다.
배열의 첫 번째 요소로 모두 초기화를 시켜주었습니다.

저는 아래에서 배열을 for문을 돌려 숫자끼리 비교할 것이기 때문에 maxmin값을 Integer로 형변환해주었습니다.


        for ( int i = 1; i < arr.length; i++) {
            int num = Integer.parseInt(arr[i]);
            if ( num < min ) min = num;
            if ( num > max ) max = num;
        }
        return min+" "+max;

for문을 통해 max값과 min값을 구하는 코드입니다.

maxmin은 이미 arr[0]의 값으로 초기화가 되었기 때문에 index1부터 시작합니다.

arr[i]를 숫자로 바꿔서 값 비교가 가능하도록 만든 뒤 min보다 작으면 min에, max보다 크면 maxnum을 넣어주어 최댓값과 최솟값을 구해주었습니다.

for문을 빠져나온 뒤에는 최솟값과 최댓값을 리턴해주었습니다.
이 때 " " 공백을 더해주었기 때문에 minmax는 자동으로 다시 새로운 문자열에 귀속되게 됩니다.



소스 코드

import java.util.*;
class Solution {
    public String solution(String s) {
        String[] arr = s.split(" ");
        int max = Integer.parseInt(arr[0]), min = Integer.parseInt(arr[0]);
        for ( int i = 1; i < arr.length; i++) {
            int num = Integer.parseInt(arr[i]);
            if ( num < min ) min = num;
            if ( num > max ) max = num;
        }
        return min+" "+max;
    }
}


실행 결과



profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글