문자열 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" |
.split(' ')
으로 문자열을 배열형태로 바꿔준 뒤 최댓값 최솟값 변수를 숫자로 변환한 arr[0]의 값으로 삽입한 뒤 for문으로 배열을 돌면서 min보다 arr[i]의 값이 작으면 min을 arr[i]의 값으로 바꿔주고, max보다 arr[i]의 값이 크면 max를 arr[i]의 값으로 바꿔줬다.
s.split(' ')
으로 arr배열 선언, max와 min은 parseInt(arr[0])
으로 선언한다. (가장 첫번째 값으로 한 뒤 포문을 돌면서 값을 바꿔주기 위함)parseInt(arr[i])
가 작으면 min을 parseInt(arr[i])
로, max보다 parseInt(arr[i])
가 크면 max를 parseInt(arr[i])
로 바꿔준다.min+' '+max
를 리턴한다.function solution(s) {
const arr = s.split(' ');
let max = parseInt(arr[0])
let min = parseInt(arr[0])
for(let i=1; i<arr.length; i++) {
max = max > parseInt(arr[i]) ? max : parseInt(arr[i]);
min = min < parseInt(arr[i]) ? min : parseInt(arr[i]);
}
return min+' '+max;
}
접근방법 1의 코드 리턴을 적고있을 때 불현듯 생각난 sort
,,, sort를 이용하면 코드가 훨씬 간결해지겠다고 생각했다. sort 오름차순 정렬을 사용하고 arr[0]번째와 신문법 at(-1)
을 사용해 arr의 마지막 요소를 리턴하면 끝이잖아?!
s.split(' ')
으로 arr배열 선언한 뒤 sort((a,b) => {return a-b})
으로 오름차순 정렬한다.arr[0]
(최솟값)과 배열의 마지막 원소 arr.at(-1)
(최댓값)을 공백을 포함해 리턴한다.function solution(s) {
let arr = s.split(' ');
arr.sort((a, b) => {
return a - b;
});
return arr[0]+' '+arr.at(-1);
}
글이 많은 도움이 되었습니다, 감사합니다.