function solution(dots) {
var a = dots.map(c=> c[0])
var x = Math.max(...a) - Math.min(...a)
var b = dots.map(c=> c[1])
var y = Math.max(...b) - Math.min(...b)
return x*y
}
수도코드 생각하면 쉬워짐 ... 나머지 매개변수 쓰면 배열에서 벗겨지남?
function solution(keyinput, board) {
var answer = [0, 0];
let x = Math.floor(board[0]/2)
let y = Math.floor(board[1]/2)
for(i=0; i<keyinput.length; i++){
if(keyinput[i] === "left" && answer[0] > -x) {
answer[0] -= 1
} else if(keyinput[i] === "right" && answer[0] < x) {
answer[0] += 1
} else if(keyinput[i] === "up" && answer[1] < y) {
answer[1] += 1
} else if(keyinput[i] === "down" && answer[1] > -y) {
answer[1] -= 1
}
}
return answer
}
board를 2로 나누는 것 까지 괜찮았으나 x, y에 할당해서 - 붙여서 연산해야겠다는 생각을 못했다. 매번 한, 두 줄로 끝내는 코드만 짜니까 변수가 많아지면 못 푸는 것같으니 익숙해지기
function solution(numbers) {
let a = numbers.length
numbers.sort((a,b)=> b-a)
if(numbers[0]*numbers[1] > numbers[a-1]*numbers[a-2]){
return numbers[0]*numbers[1]
} else {
return numbers[a-1]*numbers[a-2]
}
}
if를 써서 비교했지만,
Math.max( numbers[N-1] * numbers[N-2], numbers[0] * numbers[1] )
Math.max를 쓰면 더 짧게 표현할 수 있다. 접근 자체는 따봉 제일 많은거랑 같아서 굿
function solution(polynomial) {
var answer = '';
polynomial = polynomial.split(' + ')
let xNum = 0;
let num = 0;
polynomial.forEach((e) => {
if (e.includes('x')) {
const x = e.split('x');
if (x[0] === '') xNum++;
if (x[0] !== '') xNum += Number(x[0]);
}
if (!e.includes('x')) num += Number(e);
})
if (xNum !== 0 && num !== 0) return xNum === 1 ? `x + ${num}` : `${xNum}x + ${num}`;
if (xNum !== 0 && num === 0) return xNum === 1 ? 'x' : `${xNum}x`;
if (xNum === 0 && num !== 0) return `${num}`;
if (xNum === 0 && num === 0) return '0';
return polynomial
}
못풀어서 본 남의 답...