문제 개요JavaScript에서 다음과 같은 함수를 작성해야 합니다.이 함수는 첫 번째 인수로 숫자 배열을, 두 번째 인수로 허용할 최대 등장 횟수를 나타내는 숫자를 받습니다.함수는 배열에서 요소들을 삭제하여, 결과 배열에 어떤 요소도 두 번째 인수로 지정된 횟수보다 많이 나타나지 않도록 만들어야 합니다.예시예를 들어 아래와 같은 입력이 주어졌다고 가정해 보겠습니다.const arr = [4, 2, 3, 2, 4, 2, 2, 4];const num = 2;위 입력의 경우 각 숫자는 최대 2번까지만 남아 있어야 하므로, 기대하는 출력
문제 정의 수학 표현식을 문자열 형태로 입력받아, 그 계산 결과를 숫자(number)로 반환하는 자바스크립트 함수를 작성해야 합니다. 단순히 왼쪽부터 차례대로 계산하는 것이 아니라, 실제 수학의 규칙처럼 연산자 우선순위까지 올바르게 반영해야 한다는 점이 핵심입니다. 함수가 지원해야 하는 연산자는 다음과 같습니다. + (덧셈) - (뺄셈) * (곱셈) / (나눗셈) — 부동소수점(floating-point) 나눗셈으로 처리하며, 0으로 나누는 경우에는 0을 반환하도록 안전장치를 둡니다. 연산자는 기본적으로 왼쪽에서 오른
문제 개요이번 글에서는 JavaScript 함수를 작성해 보겠습니다. 이 함수는 숫자로 이루어진 배열을 하나 입력받고, 배열의 각 요소를 해당 요소의 0 기반 인덱스만큼 거듭제곱한 값으로 변환한 새로운 배열을 만들어야 합니다.예를 들어 인덱스 0에 있는 요소는 0제곱(항상 1), 인덱스 1에 있는 요소는 1제곱(자기 자신), 인덱스 2에 있는 요소는 2제곱이 되는 방식입니다. 최종적으로 이렇게 변환된 새 배열을 반환하면 됩니다.해결 코드다음은 위 문제를 해결하는 JavaScript 코드입니다.const arr = [5, 2, 3,
문제오름차순으로 정렬된 숫자 배열을 인수로 받아, 해당 배열의 분산(variance)을 계산하는 JavaScript 함수를 작성해야 합니다.분산은 숫자 집합이 평균으로부터 얼마나 흩어져 있는지를 나타내는 통계적 척도입니다. 각 데이터 값과 평균 사이의 차이(편차)를 제곱한 뒤, 그 값들을 모두 더하고 데이터 개수로 나누어 구합니다.먼저 평균(M)은 다음과 같이 계산합니다.$Mean (M) = ( \sum_{i=0}^{n-1} arr[i])$ / n그리고 분산(V)은 다음 공식으로 구합니다.$Variance (V) = $(\sum_{
문제 소개 이번 문제에서는 공백으로 구분된 3자리 이진수 문자열을 입력받아, 그중 짝수에 해당하는 숫자만 오름차순으로 정렬하고 홀수는 원래 자리에 그대로 두는 JavaScript 함수를 작성해야 합니다. 예를 들어 입력이 101 111 100 001 010이라면, 101(십진수 5), 111(7), 001(1)은 홀수이므로 위치가 유지되고, 100(4)과 010(2)처럼 짝수인 값들만 크기순으로 재배열하는 것이 목표입니다. 구현 코드 const str = 101 111 100 001 010; const sortEvenIncrea
패리티 비트란?패리티 비트(parity bit) 또는 체크 비트(check bit)는 비트 문자열에 추가되어, 문자열 전체에서 1의 개수가 짝수 또는 홀수가 되도록 만들어 주는 비트입니다. 데이터 전송 과정에서 발생할 수 있는 오류를 간단히 검출하기 위해 널리 사용되는 기본적인 오류 검출 방식입니다.문제 설명두 개의 매개변수를 받는 JavaScript 함수를 작성해야 합니다.parity: 원하는 패리티 유형 (항상 even 또는 odd)bin: 검사하려는 숫자의 이진수 표현함수의 목표는 0 또는 1의 정수를 반환하는 것입니다. 반환
문제 소개이번 글에서는 두 개의 숫자로 이루어진 범위 배열을 인자로 받아, 해당 범위에 속한 모든 숫자의 세제곱 값을 합산하여 반환하는 JavaScript 함수를 작성해 보겠습니다.예를 들어 범위가 [4, 11]이라면, 4부터 11까지 각 숫자를 세제곱한 뒤(4³ + 5³ + ... + 11³) 그 전체 합계를 구해야 합니다.예제 코드다음은 문제를 해결하는 JavaScript 코드입니다 −const range = [4, 11]; const sumCubes = ([l, h]) => {
문제 상황JavaScript의 Array 클래스 프로토타입에 내장 메서드 filter()와 동일하게 동작하는 사용자 정의 함수를 구현해야 합니다.이 함수는 콜백 함수를 유일한 인자로 받아야 하며, 배열의 각 요소마다 해당 콜백 함수를 호출해야 합니다. 이때 콜백 함수는 현재 요소와 그 요소의 인덱스, 두 가지 값을 인자로 전달받습니다. 콜백 함수가 true를 반환하면 해당 요소를 결과 배열에 포함하고, 그렇지 않으면 제외합니다.구현 방법핵심 로직은 다음과 같습니다.결과를 담을 빈 배열을 하나 생성합니다.for 반복문으로 원본 배열을
문제 소개두 개의 숫자를 입력으로 받는 JavaScript 함수를 작성해야 합니다. 첫 번째 숫자는 어떤 두 수의 합을 나타내고, 두 번째 숫자는 그 두 수의 최대 공약수(HCF, GCD)를 나타냅니다.함수는 이 조건을 동시에 만족하는 두 숫자를 찾아 배열 형태로 반환해야 하며, 만족하는 조합이 존재하지 않는 경우에는 -1을 반환해야 합니다.접근 방법핵심 아이디어는 아주 간단합니다. 두 수의 최대 공약수가 g라면, 두 수 모두 g로 나누어 떨어져야 하고, 따라서 그 합 역시 반드시 g로 나누어 떨어져야 합니다.이 성질을 활용하면 다
문제 정의숫자 배열을 첫 번째 인수로, 그리고 하나의 숫자(n)를 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 입력 배열에서 마지막 n개의 짝수를 찾아 새로운 배열 형태로 반환하는 역할을 수행합니다.구현 예시다음은 이 문제를 해결하는 코드입니다 −const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];const num = 3;const pickEvens = (arr = [], num = 1) => { const res = [];  
문제 소개문자열을 입력받아 처리하는 JavaScript 함수를 작성해야 합니다. 이 함수는 정확히 두 개의 요소를 가진 배열을 반환해야 하며, 첫 번째 요소는 문자열에서 연속으로 가장 많이 나타나는 문자, 두 번째 요소는 해당 문자가 연속으로 나타난 횟수입니다.예를 들어, tdfdffddffsdsfffffsdsdsddddd라는 문자열이 주어졌다면, f가 5번 연속으로 나타나므로 [f, 5]를 반환해야 합니다.예제 코드다음은 위 문제를 해결하는 전체 코드입니다 −const str = 'tdfdffddffsdsffff
문제 소개이번 글에서는 두 개의 숫자 m과 n을 입력받아, m의 처음 n개 자연수 배수로 구성된 배열을 생성하고 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.예를 들어 m = 6, n = 14가 주어지면, 함수는 6의 배수 중 첫 14개인 [6, 12, 18, ..., 84] 배열을 반환해야 합니다.구현 방법접근 방식은 매우 간단합니다. 1부터 n까지 반복하면서 각 반복마다 m에 현재 인덱스 i를 곱한 값을 결과 배열에 추가하면 됩니다.코드 예제const m = 6; const n = 14; const firs
문제 소개두 개의 정수로 이루어진 범위를 첫 번째 인수로, 하나의 숫자를 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 지정된 범위 안에서 입력받은 숫자로 나누어 떨어지는 모든 수를 찾아 그 개수를 반환해야 합니다.구현 방법가장 직관적인 방법은 반복문을 사용하는 것입니다. 범위의 시작 값부터 끝 값까지 한 숫자씩 확인하면서, 나머지 연산자(%)를 이용해 해당 숫자로 나누어 떨어지는지 검사합니다. 나머지가 0이면 카운트를 증가시키고, 마지막에 카운트 값을 반환하면 됩니다.예제 코드const range =
문제첫 번째 인수로 공백을 포함할 수 있는 문자열을, 두 번째 인수로 숫자 하나를 받는 JavaScript 함수를 작성해야 합니다.이 함수는 먼저 문자열에서 모든 공백을 제거한 뒤, 두 번째 인수로 전달된 길이를 기준으로 문자열을 여러 개의 청크(chunk)로 나누어야 합니다.나눠진 모든 청크는 동일한 길이를 가져야 하며, 유일한 예외는 마지막 청크입니다. 남은 문자가 기준 길이보다 적을 경우 마지막 청크는 더 짧은 길이를 가질 수 있습니다.코드 예시다음은 이 문제를 해결하는 코드입니다.const num = 5;const str =
문제 정의영어 소문자 알파벳으로 구성된 문자열 배열을 입력받는 JavaScript 함수를 작성해야 합니다.이 함수는 입력 배열을 새로운 배열로 변환(map)해야 하며, 결과 배열의 각 요소는 해당 문자열 안에서 문자 자신의 위치(1부터 시작하는 인덱스)와 영어 알파벳에서의 위치(1부터 시작하는 인덱스)가 서로 일치하는 문자의 개수를 의미합니다.예를 들어 문자열 akcle의 경우 결과값은 3입니다. 그 이유는 문자 a, c, e가 문자열 내에서도, 영어 알파벳에서도 각각 1번째, 3번째, 5번째 위치에 존재하기 때문입니다.예제 코드c
문제 설명오름차순(증가 순서)으로 정렬된 숫자 배열이 하나 주어집니다. 그런데 이 배열에는 단 하나의 요소만 정렬 순서에서 벗어나 있습니다. 우리가 작성해야 할 JavaScript 함수는 바로 그 요소를 찾아 반환하는 역할을 합니다.예를 들어 [1, 2, 3, 4, 17, 5, 6, 7, 8]과 같은 배열이 입력으로 들어온다면, 대부분의 값은 오름차순을 유지하고 있지만 17만 순서에서 어긋나 있으므로 함수는 17을 반환해야 합니다.접근 방법배열을 처음부터 순회하면서 인접한 세 요소 간의 관계를 검사하면 됩니다. 완전한 오름차순 배열
문제 설명숫자로 이루어진 2차원 배열을 인수로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 2차원 배열의 각 행에서 가장 작은 숫자를 추출한 뒤, 그 최솟값들을 모두 더한 합계를 반환해야 합니다.예를 들어 다음과 같은 배열이 주어졌다고 가정해 보겠습니다.[[2, 5, 1, 6], [6, 8, 5, 8], [3, 6, 7, 5], [9, 11, 13, 12]]각 행의 최솟값은 차례대로 1, 5, 3, 9이므로, 함수는 1 + 5 + 3 + 9 = 18을 반환해야 합니다.해결 접근 방식이 문제는 두 단계로 나누어 해결할
문제 설명이번 문제에서는 숫자 n과 경계 값 b를 입력받는 JavaScript 함수를 작성해야 합니다. 함수는 다음 세 가지 조건을 모두 만족하는 가장 큰 정수 num을 반환해야 합니다.num은 n으로 나누어 떨어져야 합니다.num은 경계 값 b보다 작거나 같아야 합니다.num은 0보다 커야 합니다.예제 코드 — 반복문 활용가장 직관적인 방법은 n부터 b까지의 모든 수를 순회하면서 조건에 맞는 최댓값을 찾는 것입니다.const n = 14; const b = 400; const biggestDivisible = (n, b) =>
문제 개요공백을 포함할 수 있는 문자열이 주어졌을 때, 공백의 위치는 그대로 유지하면서 나머지 문자들만 거꾸로 뒤집는 JavaScript 함수를 작성해야 합니다.여기서 핵심은 문자열 전체를 단순히 뒤집는 것이 아니라, 각 공백이 원래 있던 인덱스 자리에 그대로 머물도록 하면서 문자들의 순서만 반전시키는 것입니다.접근 방식이 문제는 다음과 같은 아이디어로 해결할 수 있습니다.문자열의 끝에서부터 앞으로 순회하면서, 공백이 아닌 문자를 결과 문자열에 차례대로 이어 붙입니다.결과 문자열의 현재 길이(res.length)가 가리키는 원본 문
문제문자열 배열을 입력받아, 각 문자열 안에서 연속해서 나타나는 중복 문자를 제거한 새로운 문자열 배열을 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어 kelless에는 ll, ss처럼 연속된 문자가 포함되어 있으므로, 각각 하나씩만 남겨 keles로 만들어야 합니다.해결 방법다음은 reduce 메서드를 활용한 구현 예시입니다. { if (arr[index] !== arr[index+1]) { map.push(arr[index]); }