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

ma.caron_g·2021년 12월 7일
0

Lv.2 - Programmers

목록 보기
6/14
post-thumbnail

1. Problem 📃

[ 최댓값과 최솟값 ]

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


[ 문제 설명 ]

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

예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.


2. Constraint 🔗

[ 제한 사항 ]

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

3. Example 📚

[ 입출력 예시 ]

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

4. Solution 🔑

[ Arrays.sort(배열명);를 이용한 풀이 ]

  1. 입력 받은 문자열을 split(" ");을 이용하여 문자열 배열(temp)에 담아준다.

  2. 문자열로 표현 돼 있는 temp 배열을 정수형 배열(n)에 정수로 바꿔 복사하고 Arrays.sort(배열명);를 사용하여 오름차순 정렬해준다.

  3. answer에 정수형 배열(n)의 0번째 요소와 + " " + 정수형 배열 마지막 요소(n.length - 1)을 담고 answer을 반환한다.

[ Arrays.sort(배열명);를 이용하지 않은 풀이 - 시간이 좀 더 단축 됨. ]

  1. 입력 받은 문자열을 split(" ");을 이용하여 문자열 배열(temp)에 담아준다.

  2. 최댓값(max), 최솟값(min), 배열값을 정수형으로 담을 변수(val)를 선언한다.
    최댓값(max)와 최솟값(min)에는 배열 첫 번째 요소를 담아준다.

  3. for문으로 배열을 확인하여 값 하나 하나 정수로 바꾸고
    최댓값을 비교하여 최댓값보다 입력 된 수가 크다면 최댓값(max)을 입력 된 값(n)으로 변경.
    최솟값을 비교하여 최솟값보다 입력 된 수가 작으면 최솟값(min)을 입력 된 값(n)으로 변경.

5. Code 💻

[ Arrays.sort(배열명);를 이용한 풀이 ]

import java.util.Arrays;

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

[ Arrays.sort(배열명);를 이용하지 않은 풀이 - 시간이 좀 더 단축 됨. ]


class Solution {
	public String solution(String s) {
	String answer = "";
        String[] temp = s.split(" ");
        int min = Integer.parseInt(temp[0]);
        int max = Integer.parseInt(temp[0]);
        int n;
        
	for(int i=1; i<temp.length; i++) {
	    n = Integer.parseInt(temp[i]);
            if(min > n){
                min = n;
            }
            if(max < n){
                max = n;
            }
        }
        
        answer = min + " " + max;
        
        return answer;
    }
}
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글