최대값 만들기 (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;
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 17  (0) 2025.01.31
뇌주름 살리기 - 16  (0) 2025.01.25
뇌주름 살리기 - 14  (0) 2025.01.24
뇌주름 살리기 - 13  (1) 2025.01.22
뇌주름 살리기 - 12  (0) 2025.01.21

직사각형 넓이 구하기

2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.

function solution(dots) {
    let x = [];
    let y = [];

    for(let i = 0; i < 4; i++) {
        if(!x.includes(dots[i][0])) x.push(dots[i][0]);
        if(!y.includes(dots[i][1])) y.push(dots[i][1]);
    }

    return Math.abs((x[0] - x[1]) * (y[0] - y[1]));
}

캐릭터의 좌표

머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요.

  • [0, 0]board의 정 중앙에 위치합니다. 예를 들어 board의 가로 크기가 9라면 캐릭터는 왼쪽으로 최대 [-4, 0]까지 오른쪽으로 최대 [4, 0]까지 이동할 수 있습니다.
function solution(keyinput, board) {
    let answer = [0, 0];

    let maxW = (board[0] - 1) / 2;
    let maxH = (board[1] - 1) / 2;

    for(let i = 0; i < keyinput.length; i++) {
        switch(keyinput[i]) {
            case 'up':
                if(answer[1] + 1 <= maxH) answer[1] += 1;
                break;
            case 'down':
                if(Math.abs(answer[1] - 1) <= maxH) answer[1] -= 1;
                break;
            case 'left':
                if(Math.abs(answer[0] - 1) <= maxW) answer[0] -= 1;
                break;
            case 'right':
                if(answer[0] + 1 <= maxW) answer[0] += 1;
                break;
        }
    }

    return answer;
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 16  (0) 2025.01.25
뇌주름 살리기 - 15  (0) 2025.01.24
뇌주름 살리기 - 13  (1) 2025.01.22
뇌주름 살리기 - 12  (0) 2025.01.21
뇌주름 살리기 - 11  (0) 2025.01.20

문자열 안에 문자열

문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.

function solution(str1, str2) {
    return str1.includes(str2) ? 1 : 2;
}

제곱수 판별하기

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    return Math.sqrt(n) % 1 === 0 ? 1 : 2;
}

세균 증식

어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.

function solution(n, t) {
    return n * (2 ** t);
}

문자열 정렬하기 (2)

영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.

function solution(my_string) {
    return my_string.toLowerCase().split('').sort().toString().replaceAll(',', '');
}

7의 개수

머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

function solution(array) {
    return array.map((x) => x.toString().split('')).flat().filter((x) => x === "7").length;
}

잘라서 배열에 저장하기

문자열 my_strn이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

function solution(my_str, n) {
    let answer = [];

    for(let i = 0; i < Math.ceil(my_str.length / n); i++) {
        answer.push(my_str.slice(i * n, (i * n) + n));
    } 

    return answer;
}

머쓱이보다 키 큰 사람

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

function solution(array, height) {
    return array.filter((x) => x > height).length;
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 15  (0) 2025.01.24
뇌주름 살리기 - 14  (0) 2025.01.24
뇌주름 살리기 - 12  (0) 2025.01.21
뇌주름 살리기 - 11  (0) 2025.01.20
뇌주름 살리기 - 10  (0) 2025.01.19

정수 numk가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.

function solution(num, k) {
    let answer = num.toString().indexOf(k);

    return answer > -1 ? answer + 1 : answer;
}

n의 배수 고르기

정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.

function solution(n, numlist) {
    return numlist.filter((x) => x % n === 0);
}

자릿수 더하기

정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요

function solution(n) {
    return n.toString().split('').reduce((x, y) => x + Number(y), 0);
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 14  (0) 2025.01.24
뇌주름 살리기 - 13  (1) 2025.01.22
뇌주름 살리기 - 11  (0) 2025.01.20
뇌주름 살리기 - 10  (0) 2025.01.19
뇌주름 살리기 - 9  (0) 2025.01.16

편지

머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.

function solution(message) {
    return message.length * 2;
}

가장 큰 수 찾기

정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

function solution(array) {
    let answer = [...array];

    array.sort((x, y) => y - x);

    return [array[0], answer.indexOf(array[0])];
}

문자열 계산하기

my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.

function solution(my_string) {
    let ms = my_string.split(' ');
    let answer = Number(ms[0]);

    for(let i = 2; i < ms.length; i += 2) {
        if(ms[i - 1] === '+') answer += Number(ms[i]);
        else answer -= Number(ms[i]);
    }

    return answer;
}

배열의 유사도

두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.

function solution(s1, s2) {
    let answer = 0;

    for(let s of s1) {
        if(s2.includes(s)) {
            answer += 1;
        }
    }

    return answer;
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 13  (1) 2025.01.22
뇌주름 살리기 - 12  (0) 2025.01.21
뇌주름 살리기 - 10  (0) 2025.01.19
뇌주름 살리기 - 9  (0) 2025.01.16
뇌주름 살리기 - 8  (0) 2025.01.15

영어가 싫어요

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

function solution(numbers) {
    let answer = [];

    let i = 0;
    while(i < numbers.length) {
        switch(numbers[i]) {
            case 'z':
                answer.push(0);
                i += 4;
                break;
            case 'o':
                answer.push(1);
                i += 3;
                break;
            case 't':
                if(numbers[i + 1] === 'w') {
                    answer.push(2);
                    i += 3;
                } else if(numbers[i + 1] === 'h') {
                    answer.push(3);
                    i += 5;
                }
                break;
            case 'f':
                if(numbers[i + 1] === 'o') answer.push(4);
                else if(numbers[i + 1] === 'i') answer.push(5);
                i += 4;
                break;
            case 's':
                if(numbers[i + 1] === 'i') {
                    answer.push(6);
                    i += 3;
                } else if(numbers[i + 1] === 'e') {
                    answer.push(7);
                    i += 5;
                }
                break;
            case 'e':
                answer.push(8);
                i += 5;
                break;
            case 'n':
                answer.push(9);
                i += 4;
                break;
        }
    }

    return Number(answer.toString().replaceAll(',', ''));
}

인덱스 바꾸기

문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

function solution(my_string, num1, num2) {
    let answer = my_string.split('');

    let tmp = answer[num1];
    answer[num1] = answer[num2];
    answer[num2] = tmp;

    return answer.toString().replaceAll(',', '');
}

한 번만 등장한 문자

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

function solution(s) {
    let obj = {};

    for(let i = 0; i < s.length; i++) {
        if(obj[s[i]] === undefined) {
            obj[s[i]] = 1;
        } else {
            obj[s[i]] += 1;
        }
    }

    let answer = [];

    for(let p in obj) {
        if(obj[p] === 1) answer.push(p);
    }

    return answer.sort().toString().replaceAll(',', '');
}

약수 구하기

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    let answer = [];

    for(let i = 1; i <= Math.sqrt(n); i++) {
        if(n % i === 0) {
            answer.push(i);
            if(i !== n / i) {
                answer.push(n / i);
            }
        }
    }

    return answer.sort((x, y) => x - y);
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 12  (0) 2025.01.21
뇌주름 살리기 - 11  (0) 2025.01.20
뇌주름 살리기 - 9  (0) 2025.01.16
뇌주름 살리기 - 8  (0) 2025.01.15
뇌주름 살리기 - 7  (0) 2025.01.14

가까운 수

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

function solution(array, n) {
    array.push(n);
    array.sort((x, y) => x - y);

    let answer = 0;

    if(array.indexOf(n) === array.length - 1) {
        answer = array[array.indexOf(n) - 1];
    } else {
        let left = Math.abs(array[array.indexOf(n)] - array[array.indexOf(n) - 1]);
        let right = Math.abs(array[array.indexOf(n)] - array[array.indexOf(n) + 1]);

        if(left <= right) {
            answer = array[array.indexOf(n) - 1];
        } else {
            answer = array[array.indexOf(n) + 1];
        }
    }

    return answer;
}

369게임

머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.

function solution(order) {
    return order.toString().split('').filter((x) => Number(x) % 3 === 0 && Number(x) > 0).length;
}

암호 해독

군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.

  • 암호화된 문자열 cipher를 주고받습니다.
  • 그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.

문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(cipher, code) {
    return cipher.split('').filter((x, i) => i % code === code - 1).toString().replaceAll(',', '');
}

대문자와 소문자

문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(my_string) {
    return my_string.split('').map((x) => x.charCodeAt(0) >= 97 ? x.toUpperCase() : x.toLowerCase()).toString().replaceAll(',', '')
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 11  (0) 2025.01.20
뇌주름 살리기 - 10  (0) 2025.01.19
뇌주름 살리기 - 8  (0) 2025.01.15
뇌주름 살리기 - 7  (0) 2025.01.14
뇌주름 살리기 - 6  (0) 2025.01.13

컨트롤 제트

숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.

function solution(s) {
    let answer = 0;
    let arr = s.split(' ');

    for(let i = 0; i < arr.length; i++) {
        if(arr[i] === 'Z') {
            answer -= Number(arr[i - 1]);
        } else {
            answer += Number(arr[i]);
        }
    }

    return answer;
}

배열 원소의 길이

문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 return하도록 solution 함수를 완성해주세요.

function solution(strlist) {
    return strlist.map((x) => x.length);
}

중복된 문자 제거

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(my_string) {
    let answer = [];

    my_string.split('').forEach(function(x) {
        if(!answer.includes(x)) answer.push(x);
    });

    return answer.toString().replaceAll(',', '');
}

삼각형의 완성조건 (1)

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.

  • 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.

삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.

function solution(sides) {
    sides.sort((x, y) => x - y);

    return sides[2] < sides[1] + sides[0] ? 1 : 2;
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 10  (0) 2025.01.19
뇌주름 살리기 - 9  (0) 2025.01.16
뇌주름 살리기 - 7  (0) 2025.01.14
뇌주름 살리기 - 6  (0) 2025.01.13
뇌주름 살리기 - 5  (0) 2025.01.12

모음 제거

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(my_string) {
    return my_string.replaceAll(/[aeiou]/g, '');
}

문자열 정렬하기 (1)

문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

function solution(my_string) {
    return my_string.replaceAll(/[a-z]/g, '').split('').map((x) => Number(x)).sort((x, y) => x - y);
}

숨어있는 숫자의 덧셈 (1)

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

function solution(my_string) {
    return my_string.replaceAll(/[a-zA-Z]/g, '').split('').reduce((x, y) => Number(x) + Number(y), 0);
}

소인수분해

소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    let answer = [];

    while(n > 1) {
        for(let i = 2; i <= n; i++) {
            if(n % i === 0) {
                if(!answer.includes(i)) answer.push(i);
                n /= i;
                break;
            }
        }
    }

    return answer;
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 9  (0) 2025.01.16
뇌주름 살리기 - 8  (0) 2025.01.15
뇌주름 살리기 - 6  (0) 2025.01.13
뇌주름 살리기 - 5  (0) 2025.01.12
뇌주름 살리기 - 4  (0) 2025.01.11

공 던지기

머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.

function solution(numbers, k) {
    let idx = 0;

    if(k === 1) {
        return numbers[idx];
    }

    for(let i = 2; i <= k; i++) {
        idx += 2;

        if(idx >= numbers.length) {
            idx = idx % numbers.length;
        }
    }

    return numbers[idx];
}

배열 회전시키기

정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.

function solution(numbers, direction) {
    let answer = [];

    if(direction === 'left') {
        for(let i = 0; i < numbers.length; i++) {
            if(i === numbers.length - 1) {
                answer[i] = numbers[0];
            } else {
                answer[i] = numbers[i + 1];
            }
        }
    } else if(direction === 'right'){
        for(let i = 0; i < numbers.length; i++) {
            if(i === 0) {
                answer[i] = numbers[numbers.length - 1];
            } else {
                answer[i] = numbers[i - 1];
            }
        }
    }

    return answer;
}

주사위의 개수

머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.

function solution(box, n) {
    return Math.floor(box[0] / n) * Math.floor(box[1] / n) * Math.floor(box[2] / n);
}

합성수 찾기

약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    let answer = 0;
    let cnt = 0;

    if(n >= 4) {    
        for(let i = 4; i <= n; i++) {
            cnt = 0;

            for(let j = 1; j <= Math.sqrt(i); j++){
                if(j * j === i) cnt += 1;
                if(i % j === 0) cnt += 2;
            }

            if(cnt >= 3) answer += 1;
        }
    }

    return answer;
}

최댓값 만들기 (1)

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

function solution(numbers) {
    numbers.sort((x, y) => y - x);
    return numbers[0] * numbers[1];
}

팩토리얼

i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.

  • i! ≤ n
function solution(n) {
    const facto = (x) => x <= 1 ? 1 : x * facto(x - 1);

    for(let i = 0; i <= 10; i++) {
        if(facto(i) <= n && facto(i + 1) > n) {
            return i;
        }
    }
}

'코딩테스트' 카테고리의 다른 글

뇌주름 살리기 - 8  (0) 2025.01.15
뇌주름 살리기 - 7  (0) 2025.01.14
뇌주름 살리기 - 5  (0) 2025.01.12
뇌주름 살리기 - 4  (0) 2025.01.11
뇌주름 살리기 - 3  (0) 2025.01.10

+ Recent posts