최댓값과 최솟값 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=java
문제설명
문자열 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"
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split(" ");
int[] arr2 = new int[arr.length];
for(int i = 0 ; i < arr.length; i++){
arr2[i] = Integer.parseInt(arr[i]);
}
Arrays.sort(arr2);
for(int i = 0; i < 2; i++){
if(i == 0)
answer += arr2[0]+ " ";
else
answer += arr2[arr2.length - 1];
}
return answer;
}
}
s.split(" ")을 통해 띄어쓰기 기준으로 잘라 공백을 제외한 각각의 숫자들을 arr배열에 저장해주었다.Integer.parseInt()를 통해 String형 배열 arr의 값을 int형 배열arr2에 넣어주었다.Arrays.sort(arr2)를 통해 오름차순으로 정렬을 해주었으니 제일 앞에 인덱스에 있는 값이 최솟값, 제일 뒤에있는 값이 최댓값이 되었다.return arr2[0] + " " + arr2[arr2.length - 1];로도 가능하겠다는 생각이 들어 수정 후 제출해보았는데 아주 미세하게 효율성이 좋게 나왔다!(너무 복잡하게만 생각하지 말자!)