며칠동안 면접준비를 하느라 코딩테스트를 못했네요...ㅎ
다시 하루하루 꾸준히 작성해야겠습니다!
카펫
// 카펫
function solution(brown, yellow) {
const total = brown + yellow;
let array = [];
for (let i = 1; i <= total; i++) {
if (total % i === 0) {
let width = total / i;
let height = i;
array.push([width, height]);
}
}
for (let [width, height] of array) {
if ((width - 2) * (height - 2) === yellow) {
return [width, height];
}
}
}
// 1. 전체 넓이에서 약수를 구한다.
// 2. 너비, 높이 -2를 한 후 곱한 것이 yellow의 개수와 같다면
// 3. 그 값을 return
유한 소수 판별하기
function solution(a, b) {
//최대 공약수 함수
function gcd(x, y) {
while (y !== 0) {
let temp = y;
y = x % y;
x = temp;
}
return x;
}
let gcdValue = gcd(a, b);
let denominator = b / gcdValue;
while (denominator % 2 === 0) {
denominator /= 2;
}
while (denominator % 5 === 0) {
denominator /= 5;
}
return denominator === 1 ? 1 : 2;
}
순서 바꾸기
function solution(num_list, n) {
var answer = [];
for (let i = n; i < num_list.length; i++) {
answer.push(num_list[i]);
}
for (let j = 0; j < n; j++) {
answer.push(num_list[j]);
}
return answer;
}
// 다른 사람 풀이
function solution(num_list, n) {
num_list.unshift(...num_list.splice(n));
return num_list;
}
홀수 vs 짝수
// 홀수 vs 짝수
function solution(num_list) {
let evenSum = 0;
let oddSum = 0;
for (let i = 0; i < num_list.length; i += 2) {
evenSum += num_list[i];
}
for (let j = 1; j < num_list.length; j += 2) {
oddSum += num_list[j];
}
return evenSum > oddSum ? evenSum : oddSum;
}
// 다른 사람 풀이
function solution(num_list) {
return Math.max(
num_list.reduce((p, c, idx) => p + (idx % 2 == 0 ? c : 0), 0),
num_list.reduce((p, c, idx) => p + (idx % 2 != 0 ? c : 0), 0)
);
}
카운트 다운
// 카운트 다운
function solution(start_num, end_num) {
var answer = [];
for (let i = start_num; i >= end_num; i--) {
answer.push(i);
}
return answer;
}