알고리즘 29번~

temp·2022년 9월 28일
0

알고리즘

목록 보기
30/30

3진법 뒤집기

function solution(n) {   
    return n.toString(3).split('').map((e,i)=>e*(3**i)).reduce((a,b)=>a+b,0);
}

최소직사각형

1.

function solution(sizes) {
  const a = sizes.map(([w, h]) => w < h ? [h, w] : [w, h]);

  let maxSize = [0, 0];
  a.forEach(([w, h]) => {
    if (w > maxSize[0]) maxSize[0] = w;
    if (h > maxSize[1]) maxSize[1] = h;
  })
  return maxSize[0]*maxSize[1]
}

2.

function solution(sizes) {
    const [hor, ver] = sizes.reduce(([h, v], [a, b]) => [Math.max(h, Math.max(a, b)), Math.max(v, Math.min(a, b))], [0, 0])
    return hor * ver;
}

3.

function solution(sizes) {
    let w = 0;
    let h = 0;
    sizes.forEach(s => {
        const [a, b] = s.sort((a,b) => a-b);
        if (a > h) h = a;
        if (b > w) w = b;
    });

    return w * h;
}

같은 숫자는 싫어

function solution(arr) {
  let answer = [];
  
  answer.push(arr[0])

  for (let i=1; i<arr.length; i++) {
    if (arr[i] !== arr[i-1])  answer.push(arr[i])
   } 
  return answer;
}
function solution(arr) {
    return arr.filter((val,index) => val != arr[index+1]);
}

두 개 뽑아서 더하기

profile
공부한 내용 정리중...

0개의 댓글

관련 채용 정보