코딩테스트
뇌주름 살리기 - 15
라퐁
2025. 1. 24. 21:50
최대값 만들기 (2)
정수 배열 numbers
가 매개변수로 주어집니다. numbers
의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
function solution(numbers) {
const sortNum = numbers.sort((x, y) => y - x);
const front = sortNum[0] * sortNum[1];
const back = sortNum[sortNum.length - 2] * sortNum[sortNum.length - 1];
return front >= back ? front : back;
}
다항식 더하기
한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial
이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다.
function solution(polynomial) {
let coef = 0;
let number = polynomial.split(' ').filter((x) => !x.includes('x') && x !== '+').reduce((x, y) => x + Number(y), 0);
polynomial.split(' ').filter((x) => x.includes('x')).forEach(function(x) {
if(x.replace('x', '') === '') {
coef += 1;
} else {
coef += Number(x.replace('x', ''));
}
})
let answer = '';
if(coef === 1 && number > 0) {
answer += `x + ${number}`;
} else if (coef === 1 && number === 0) {
answer += 'x';
}else if(coef > 0 && number > 0) {
answer += `${coef}x + ${number}`;
} else if(coef > 0 && number === 0) {
answer += `${coef}x`;
} else {
answer += number.toString();
}
return answer;
}
숨어있는 숫자의 덧셈 (2)
문자열 my_string
이 매개변수로 주어집니다. my_string
은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string
안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
return my_string.replaceAll(/[a-zA-Z]/g, ',').split(',').filter((x) => x !== '').reduce((x, y) => x + Number(y), 0);
}
안전지대
다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.
지뢰는 2차원 배열 board
에 1로 표시되어 있고 board
에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.
지뢰가 매설된 지역의 지도 board
가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요.
function solution(board) {
let answer = JSON.parse(JSON.stringify(board));
let pi = 0, mi = 0, pj = 0, mj = 0;
for(let i = 0; i < board.length; i++) {
for(let j = 0; j < board.length; j++) {
if(board[i][j] === 1) {
pi = i + 1 === board.length ? i : i + 1;
mi = i - 1 < 0 ? 0 : i - 1;
pj = j + 1 === board.length ? j : j + 1;
mj = j - 1 < 0 ? 0 : j - 1;
answer[pi][j] = 1;
answer[pi][pj] = 1;
answer[pi][mj] = 1;
answer[mi][j] = 1;
answer[mi][pj] = 1;
answer[mi][mj] = 1;
answer[i][pj] = 1;
answer[i][mj] = 1;
}
}
}
return answer.flat().filter((x) => x === 0).length;
}
삼각형의 완성조건 (2)
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides
이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.
function solution(sides) {
let answer = 0;
if(sides[0] + sides[1] <= 3) {
answer += 1;
} else {
answer += Math.max(...sides) - (Math.max(...sides) - Math.min(...sides) + 1);
answer += (sides[0] + sides[1]) - Math.max(...sides);
}
return answer;
}