문제 소개첫 번째 인수로 문자열을, 두 번째·세 번째 인수로 각각 시작 인덱스(start)와 끝 인덱스(end)를 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 첫 번째 인수로 전달된 문자열이 자기 자신을 끝없이 이어 붙여 무한히 확장된다고 가정할 때, 시작 인덱스부터 끝 인덱스 직전까지에 해당하는 부분 문자열을 반환해야 합니다.입력 예시예를 들어 입력이 다음과 같다고 가정해 보겠습니다.const str = helloo; const start = 12; const end = 15;helloo를 무한히 반복하면 hell
정수로 이루어진 2차원 배열을 유일한 인자로 받아 처리하는 자바스크립트 함수를 작성해야 합니다.이 함수의 핵심 임무는 배열 내에서 자신이 속한 행(row)과 열(column) 양쪽 모두에서 가장 큰 값인 숫자가 총 몇 개인지 계산하고, 그 개수를 반환하는 것입니다.문제 예시예를 들어 입력 배열이 다음과 같다고 가정해 보겠습니다.const arr = [ [21, 23, 22], [26, 26, 25], [2
문제 이해하기JavaScript에서 문자열을 유일한 인수로 받아, 해당 문자열로부터 약어(두문자어)를 생성해 반환하는 함수를 작성해 보겠습니다.여기서 핵심 조건은, 약어를 구성할 때 대문자로 시작하는 단어만 고려한다는 점입니다. 즉, 소문자로 시작하는 단어는 약어 생성 과정에서 제외됩니다.예시입력 문자열이 다음과 같다면,const str = Polar Satellite Launch Vehicle;기대되는 출력 결과는 다음과 같습니다.const output = PSLV;구현 코드이를 구현한 코드는 아래와 같습니다.const str =
문제 개요정수 배열 arr가 주어졌다고 가정해 보겠습니다. 배열을 제자리(in-place)에서 수정하여 모든 0을 배열의 뒤쪽으로 이동시키는 함수를 작성해야 합니다.이때 중요한 조건은 0이 아닌 다른 요소들의 상대적인 순서가 그대로 유지되어야 한다는 점입니다.예시입력 배열이 다음과 같다면,const arr = [0, 11, 0, 22, 67];배열은 다음과 같이 수정되어야 합니다.const output = [11, 22, 67, 0, 0];해결 알고리즘이 문제는 투 포인터(two-pointer) 기법으로 효율적으로 해결할 수 있습니
문제 이해첫 번째 인자로 문자열 str을, 두 번째 인자로 숫자 num을 받는 JavaScript 함수를 작성해야 합니다.이 함수는 주어진 문자열 str에 포함된 문자들을 사용하여 정확히 길이가 num인 회문(palindrome) 문자열이 총 몇 개 만들어질 수 있는지 계산한 뒤, 그 개수를 반환해야 합니다.예를 들어, 입력값이 다음과 같다면 −const str = ij;const num = 4;출력은 다음과 같아야 합니다 −const output = 4;그 이유는 아래와 같이 네 가지 회문 문자열을 만들 수
문제 소개이번 포스팅에서는 JavaScript로 문자열이 특정 패턴의 반복으로 이루어져 있는지 판별하는 함수를 작성해 보겠습니다.함수는 첫 번째이자 유일한 인자로 문자열 하나를 받으며, 해당 문자열이 동일한 문자열 조각이 여러 번 이어져 만들어진 것인지 확인해야 합니다.만약 어떤 부분 문자열이 반복되어 전체 문자열을 구성하고 있다면 true를, 그렇지 않다면 false를 반환하면 됩니다.예를 들어 입력 문자열이 다음과 같다고 가정해 보겠습니다.const str = carcarcarcar;이 경우 기대되는 출력 결과는 다음과 같습니다
정수 배열을 첫 번째이자 유일한 인수로 받는 자바스크립트 함수를 작성해야 합니다. 이 함수는 배열 내 두 요소를 곱했을 때 얻을 수 있는 최대 곱(maximum product)을 반환해야 하며, 반드시 선형 시간 O(n)과 상수 공간 O(1)이라는 조건을 만족해야 합니다.접근 방법단순히 생각하면 배열에서 가장 큰 두 수를 곱하면 될 것 같지만, 음수가 포함된 경우에는 주의해야 합니다. 음수끼리 곱하면 양수가 되기 때문에, 절댓값이 큰 음수 두 개의 곱이 양수 두 개의 곱보다 더 커질 수 있습니다.따라서 배열을 한 번만 순회하면서 다
JavaScript에서 문자열을 인자로 받아 해당 문자열에 포함된 모든 문자가 서로 중복되지 않는지 확인하는 함수를 작성해야 합니다. 문자열의 모든 문자가 고유하다면 true를 반환하고, 단 하나의 문자라도 두 번 이상 등장한다면 false를 반환해야 합니다.접근 방식: 해시 셋(Set) 활용이 문제는 해시 셋(Hash Set)을 사용하면 효율적으로 해결할 수 있습니다. 자바스크립트에서는 Set 객체가 이 역할을 수행합니다. 문자열을 순회하면서 각 문자를 Set에 하나씩 추가하고, 만약 이미 Set에 존재하는 문자를 다시 만나게 되
파스칼 삼각형이란?파스칼 삼각형(Pascals Triangle)은 이전 행의 인접한 두 요소를 더하여 새로운 값을 만들어 내려가는 삼각형 형태의 배열입니다. 각 행의 양 끝은 항상 1이며, 조합론에서 이항계수를 나타내는 것으로도 잘 알려져 있습니다.파스칼 삼각형의 첫 몇 개 행은 다음과 같습니다.1번째 행: [1]2번째 행: [1, 1]3번째 행: [1, 2, 1]4번째 행: [1, 3, 3, 1]문제 정의양의 정수 num을 인수로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 파스칼 삼각형의 num번째 행에 포함된
문제 이해하기양의 정수 num을 유일한 인자로 받는 자바스크립트 함수를 작성해야 합니다.이 함수는 입력값과 합이 같아지도록 여러 완전제곱수를 더하는 조합을 찾아야 하며, 이때 가능한 한 적은 개수의 완전제곱수를 사용해야 합니다.예를 들어 입력값이 다음과 같다면 −const num = 123;출력은 다음과 같아야 합니다 −const output = 3;그 이유는 123 = 121 + 1 + 1, 즉 11² + 1² + 1²처럼 세 개의 완전제곱수로 표현할 수 있지만, 두 개 이하의 완전
이름들이 담긴 문자열 배열이 다음과 같이 있다고 가정해 보겠습니다.const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];그리고 다음과 같은 임의의 문자열이 하나 주어집니다.const str = 'lsoaakjm';문제 정의이 배열과 문자열을 두 개의 인수로 받는 JavaScript 함수를 작성해야 합니다.함수는 배열의 각 요소를 순회하면서, 해당 요소(이름)
이번 글에서는 두 개의 숫자를 인수로 받는 JavaScript 함수를 작성해 보겠습니다. 첫 번째 인수를 m, 두 번째 인수를 n이라고 부르겠습니다.첫 번째 숫자 m은 일반적으로 여러 자릿수로 이루어진 숫자이며, 두 번째 숫자 n은 항상 m의 자릿수보다 작은 값입니다.함수의 목표는 m에서 연속된 n개의 숫자를 추출했을 때 그 곱이 가장 커지는 조합을 찾아 해당 곱을 반환하는 것입니다.문제 예시예를 들어 입력값이 다음과 같다고 가정해 보겠습니다.const m = 65467586; const n = 3;이때 기대되는 출력 결과는 다음과
정수로 이루어진 배열을 첫 번째 인수로, 숫자 n을 두 번째 인수로 받는 자바스크립트 함수를 작성해야 한다고 가정해 봅시다.이 함수의 역할은 배열 안에 서로 n배 관계에 있는 두 숫자가 존재하는지 확인하는 것입니다. 즉, 한 숫자가 다른 숫자의 정확히 n배인 경우를 찾아야 합니다.그러한 숫자 쌍이 배열에 하나라도 존재한다면 함수는 true를 반환하고, 존재하지 않는다면 false를 반환해야 합니다.문제 이해하기예를 들어 배열과 숫자가 다음과 같이 주어졌다고 해보겠습니다.const arr = [4, 2, 7, 8, 3, 9, 5];
정수 배열을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열에 존재하는 모든 정수가 고유한 횟수(즉, 서로 다른 정수 간에 출현 횟수가 겹치지 않는지)로 나타나는지 판별해야 합니다. 조건을 만족하면 true, 그렇지 않으면 false를 반환합니다.문제 이해하기예를 들어, 입력 배열이 다음과 같다고 가정해 보겠습니다.const arr = [7, 5, 5, 8, 2, 4, 7];이 경우 기대되는 출력은 다음과 같습니다.const output = false;그 이유는 정수 7과 5가 각각 2번씩
문제 이해하기숫자 하나를 인수로 받아, 그 숫자가 어떤 자연수의 팩토리얼(계승)과 정확히 일치하는지 확인하는 JavaScript 함수를 작성해 보겠습니다.즉, n! = 입력값을 만족하는 자연수 n이 존재한다면 그 숫자를 반환하고, 만족하는 수가 없다면 -1을 반환하면 됩니다.예시입력값이 다음과 같다면,const num = 720;출력은 아래와 같아야 합니다.const output = 6;그 이유는 6! = 6 × 5 × 4 × 3 × 2 × 1 = 720이기 때문입니다. 반면 6565처럼 어떤 수의 팩토리얼로도 표현될 수 없는 값이
문제 개요 정수로 이루어진 배열을 유일한 인자로 받아, 아래 조건에 따라 정렬하는 JavaScript 함수를 작성해야 합니다. 모든 짝수는 오름차순(작은 수부터 큰 수 순서)으로 정렬합니다. 모든 홀수는 내림차순(큰 수부터 작은 수 순서)으로 정렬합니다. 짝수와 홀수의 상대적 위치는 원본 배열과 동일하게 유지합니다. 예시 입력 배열이 다음과 같다고 가정해 보겠습니다. const arr = [12, 17, 15, 24, 1, 6]; 이때 기대되는 출력은 다음과 같습니다. const output = [6, 17, 15, 12, 1,
문제 소개이번 글에서는 정수로 이루어진 배열을 입력받아, 배열 안에 자신의 등장 횟수(빈도)와 값이 동일한 정수가 존재하는지 확인하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.문제 설명함수는 정수 배열을 유일한 인수로 받습니다. 함수의 역할은 다음과 같습니다.배열을 순회하면서 각 정수의 빈도(등장 횟수)를 계산합니다.빈도가 값 자체와 일치하는 정수가 하나라도 존재하면 해당 정수를 반환합니다.조건을 만족하는 정수가 없다면 -1을 반환합니다.예시예를 들어 입력 배열이 다음과 같다고 가정해 보겠습니다.const arr =
이번 글에서는 리터럴 값으로 이루어진 배열을 유일한 인수로 받는 JavaScript 함수를 작성해 보겠습니다.이 함수가 해야 할 일은 다음과 같습니다. 배열에서 연속된 짝수 인덱스끼리 서로 교환하고, 연속된 홀수 인덱스끼리 서로 교환하는 것입니다. 단, 이 모든 교환 작업은 새로운 배열을 만들지 않고 제자리(in-place)에서 수행되어야 합니다.동작 예시예를 들어 입력 배열이 다음과 같다고 가정해 봅시다.const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];함수 실행 후 배열은 아래와 같이 변해야 합니다.cons
JavaScript에서 배열의 요소들을 활용해 지정된 길이의 모든 가능한 순열(중복 허용)을 구하는 방법을 알아보겠습니다.문제 정의첫 번째 인수로 리터럴 값들의 배열을, 두 번째 인수로 숫자를 받는 JavaScript 함수를 작성해야 합니다.이 함수는 두 번째 인수로 지정된 길이와 같은 길이를 가지는 배열들을 모두 담은 배열을 반환하며, 각 배열은 입력 배열 요소들로 만들 수 있는 모든 가능한 순열을 포함해야 합니다.예시입력 배열과 숫자가 다음과 같다고 가정해 보겠습니다.const arr = [k, 5]; const num = 3;
문제 이해하기이번 문제에서는 숫자를 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다. 함수는 입력된 숫자를 구성하는 각 자릿수 중에서 소수에 해당하는 값들만 골라 모두 더한 합계를 반환해야 합니다.예를 들어, 입력 숫자가 다음과 같다고 가정해 보겠습니다.const num = 67867852;이때 기대되는 출력 결과는 다음과 같습니다.const output = 21;그 이유는 숫자 67867852를 구성하는 자릿수 중 소수는 7, 8을 제외한 7 + 7 + 5 + 2 = 21이기 때문입니다.접근 방법한 자리