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]);
}
두 개 뽑아서 더하기