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"을 리턴하면 됩니다.
[ 제한 사항 ]
[ 입출력 예시 ]
s | return |
---|---|
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
[ Arrays.sort(배열명);를 이용한 풀이 ]
- 입력 받은 문자열을 split(" ");을 이용하여 문자열 배열(temp)에 담아준다.
- 문자열로 표현 돼 있는 temp 배열을 정수형 배열(n)에 정수로 바꿔 복사하고 Arrays.sort(배열명);를 사용하여 오름차순 정렬해준다.
- answer에 정수형 배열(n)의 0번째 요소와 + " " + 정수형 배열 마지막 요소(n.length - 1)을 담고 answer을 반환한다.
[ Arrays.sort(배열명);를 이용하지 않은 풀이 - 시간이 좀 더 단축 됨. ]
- 입력 받은 문자열을 split(" ");을 이용하여 문자열 배열(temp)에 담아준다.
- 최댓값(max), 최솟값(min), 배열값을 정수형으로 담을 변수(val)를 선언한다.
최댓값(max)와 최솟값(min)에는 배열 첫 번째 요소를 담아준다.
- for문으로 배열을 확인하여 값 하나 하나 정수로 바꾸고
최댓값을 비교하여 최댓값보다 입력 된 수가 크다면 최댓값(max)을 입력 된 값(n)으로 변경.
최솟값을 비교하여 최솟값보다 입력 된 수가 작으면 최솟값(min)을 입력 된 값(n)으로 변경.
[ 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;
}
}