라라리라
[프로그래머스] 최대값과 최소값(JavaScript) 본문
https://school.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에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
s | return |
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
나의 풀이
function solution(s) {
let arr = s.split(" ");
let temp = [];
for(let i of arr){
temp.push(Number(i));
}
let min = Math.min(...temp);
let max = Math.max(...temp);
return (min + " " + max);
}
풀이과정 :
1. 문자열 s 에 공백으로 구분된 숫자들이 저장되어 있다 했으니 s.split(" ") 을 사용하여
공백을 기준으로 배열( = arr)로 만든다.
2. 임시배열 temp에 arr의 요소들을 Number로 바꿔 넣어준다. (문자열 -> 숫자)
3. Math.min() 함수와 Math.Max() 함수를 사용하여 return 해준다.
숫자(min, max) + 문자(" ") 형태는 자동으로 문자열이 되니 따로 문자열 변환은 하지않았다.
다른 사람의 풀이 :
function solution(s) {
const arr = s.split(' ');
return Math.min(...arr)+' '+Math.max(...arr);
}
배운점 :
split을 사용하여 공백을 기준으로 배열을 생성한건 동일했는데,
나와 다른점은 임시배열을 만들어 숫자 변환을 하지 않았다는 것이다 .
문제를 해결할때 Math.min() / Math.max() 함수는 수를 비교하는 함수니깐
당연히 숫자로 변환하여 사용해야한다 생각했는데,
자바스크립트의 Math.min() / Math.max() 함수는 자동으로 문자 -> 숫자를 변환하여
비교해준다는 사실을 처음 알게되었다.
'코딩 > 프로그래머스' 카테고리의 다른 글
배열의 요소를 key로, 요소의 갯수를 value로 하는 map (0) | 2023.12.08 |
---|