본문 바로가기

javaScript/알고리즘 문제 풀이

두 배열로 최대,최소 빼서 더 큰 숫자를 리턴하라

 문자열의 두 배열 a1과 a2가 제공됩니다. 각 문자열은 a에서 z까지의 문자로 구성됩니다. x를 첫 번째 배열의 임의의 문자열로하고 y를 두 번째 배열의 임의의 문자열로합시다.

찾기 최대 (abs (length (x) - length (y)))

a1 및 / 또는 a2가 비어 있으면 Harsell (F #)을 제외한 각 언어에서 -1을 반환합니다. 여기서 Nothing (없음)을 반환합니다.


1
2
3
4
s1 = ["hoqq", "bbllkw", "oox", "ejjuyyy", "plmiis", "xxxzgpsssa", "xxwwkktt", "znnnnfqknaz", "qqquuhii", "dvvvwz"]
s2 = ["cccooommaaqqoxii", "gggqaffhhh", "tttoowwwmmww"]
 
mxdiflg(s1, s2) --> 13
cs





내 답


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function mxdiflg(a1, a2) {
    // your code
    
    let oneL=a1.map(value => value.length).sort((a,b) => a-b);
    let twoL=a2.map(value => value.length).sort((a,b) => a-b);
    
    let num1=oneL[oneL.length-1]-twoL[0];
    let num2=twoL[twoL.length-1]-oneL[0];
    
    if(a1.length ==0  || a2.length==0){
    
       return -1;
       
    }else if(num1>num2){
    
       return num1;
    
    }else{
    
      return num2;
    
    }
  
}
cs






best로 뽑힌 답1


1
2
3
4
5
6
7
8
function mxdiflg(a1, a2) {
 
  if (a1.length === 0 || a2.length === 0return -1
  let l1 = a1.map(str => str.length)
  let l2 = a2.map(str => str.length)
  return Math.max(Math.max(...l1) - Math.min(...l2), Math.max(...l2) - Math.min(...l1))
 
}
cs






오늘 느낀 점

...를 사용하여 apply를 대신하여 표현가능. Math.max와 Math.min을 사용