[JS] 프로그래머스 코딩테스트 Lv. 2 ) 최댓값과 최솟값
Test Explain
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
My Answer
function solution(s) {
let b = [...s.split(' ')];
let c=b.map(function(i){
return i*1;
})
return Math.min.apply(null,c)+' '+Math.max.apply(null,c);
}
* apply() 메소드는 배열에서 바로 Math.max 또는 Math.min으로 최대최소값을 뽑을 수 없기 때문에 사용한다. 이 상황은 민, 맥스 메소드의 argument로는 숫자만 들어갈 수 있기 때문에 발생한다. apply 는 두 번째 인자를 배열로 받고, 그 배열을 각각의 인자로 배정해서 연산이 가능한 상태로 만들어준다. apply의 첫 번째 인자는 this 로 사용할 매개변수를 쓰는데, 여기서는 this를 쓸 필요가 없으므로 null을 넣어주었다.
* 전개 연산자(...) : 참조값이 아니라 해당 변수가 가진 값을 복사하여 할당하는 것이다(깊은 복사). 새로운 값을 함께 할당할 수 있다. 따라서 기존의 변수의 값이 변경되어도, 영향을 받지 않는다.
Reference Answer
function solution(s) {
const arr = s.split(' ');
return Math.min(...arr)+' '+Math.max(...arr);
}
function solution(s) {
var arr = s.split(' ');
arr.sort((a, b) => a - b);
var answer = arr[0] + " " + arr[arr.length-1];
return answer;
}
배열을 sort() 를 사용해서 정렬한 뒤에, 인덱스를 이용하여 값을 취했다.
외부 참조 링크
https://hianna.tistory.com/487
[Javascript] 배열에서 최대값, 최소값 구하기
Javascript 배열의 여러 원소들 중 최대값, 최소값을 구하는 방법을 정리합니다. 1. Math.max(), Math.min() 소개 2. Function.prototype.apply() 사용하기 3. Spread Operator(전개 연산자) 사용하기 1. Math.max..
hianna.tistory.com
https://velog.io/@devmin/TIL-%ED%95%A8%EC%88%98-%EB%A9%94%EC%86%8C%EB%93%9C-5ok29tthyz
[TIL] JS_함수 메소드(apply, call, bind) 정리
코드스테이츠 함수 메소드 강의 내용 정리 메소드 기본 개념 apply, call, bind 각 메소드는 아래와 같이 사용할 수 있습니다. >[apply] 작성법 : fn.apply(thisArg, [argsArray]) this 인자를 첫번째 인자로 받고,
velog.io
자바스크립트 {...} [...] 문법 (비구조화 할당/구조분해 할당)
자바스크립트의 문법에 대한 글을 검색하면 대부분 let, const 혹은 화살 함수(arrow function)에 대한 이야기가 주를 이룹니다. 이번 시간에는 흔히 알려지지 않았지만 유용한 비구조화 할당 문법을
yuddomack.tistory.com