문제 소개사람들은 종종 감정을 더 강하게 드러내기 위해 글자를 반복해서 사용합니다. 예를 들어 hello는 heeellooo로, hi는 hiiii로 표현될 수 있습니다. 이렇게 만들어진 문자열에는 동일한 문자가 연속된 그룹들이 존재하는데, heeellooo의 경우 h, eee, ll, ooo라는 네 개의 그룹으로 구성되어 있습니다.문제 정의: Stretchy(늘어나는) 단어란?주어진 문자열 S에 대해, 아래의 확장(extension) 연산을 원하는 만큼 적용했을 때 질의 단어(query word)를 S와 똑같이 만들 수 있다면, 그
문제 정의 a = 1, b = 2, … z = 26과 같은 알파벳-숫자 매핑 규칙이 주어져 있고, 이 규칙에 따라 인코딩된 하나의 메시지가 전달된다고 가정해 보겠습니다. 우리가 작성해야 할 것은 이 메시지를 입력받아 처리하는 JavaScript 함수입니다. 함수의 목표는 주어진 메시지를 디코딩할 수 있는 서로 다른 방법의 총 개수를 계산하는 것입니다. 111 예제 살펴보기 예를 들어 메시지 111의 답은 3입니다. 아래처럼 세 가지 방식으로 해석할 수 있기 때문입니다. aaa — 1 / 1 / 1 (각 숫자를 한 글자씩 해석) k
JavaScript로 알파벳 한 글자를 입력받아, 해당 글자가 앞에서부터 몇 번째 위치에 있는지 계산한 후, 같은 위치에 있는 뒤에서부터 센 알파벳을 반환하는 함수를 작성해 보겠습니다.예를 들어 알파벳 g는 앞에서 7번째이므로, 뒤에서 7번째인 t가 결과로 나와야 합니다.예제 코드const alpha = g; { let alphabet = abcdefghijklmnopqrstuvwxyz; let firstpart = alphabet.substring(
문자열을 유일한 입력값으로 받아 새로운 문자열을 반환하는 JavaScript 함수를 작성해야 합니다. 이 함수는 입력 문자열을 기반으로 다음 두 가지 규칙을 적용한 결과를 만들어야 합니다. 모든 모음(a, e, i, o, u)은 대문자로 변환합니다. 나머지 알파벳 소문자는 각각 알파벳 순서상 다음 문자로 바꾸며, z는 a로 순환시킵니다. 예를 들어 입력 문자열이 다음과 같다면, const str = newString; 출력 결과는 아래와 같아야 합니다. const output = oExSusIoh; 입력 문자열 newString
JavaScript 개발을 하다 보면 길이가 같은 두 개의 배열을 하나의 객체로 합쳐야 하는 경우가 자주 있습니다. 예를 들어 다음과 같이 키 역할을 할 배열과 값 역할을 할 배열이 있다고 가정해 보겠습니다.const arr1 = [firstName, lastName, age, address, isEmployed]; const arr2 = [Rahul, Sharma, 23, Tilak Nagar, false];여기서 우리가 작성해야 할 함수는 이 두 배열을 받아서, 첫 번째 배열의 요소를 키(key)로, 두 번째 배열의 대응되는 요
JavaScript에서 문자열 리터럴로 이루어진 배열을 인수로 받는 함수를 작성해야 합니다. 이 함수는 다음 두 가지 조건을 충족해야 합니다.반복문이 아닌 재귀(recursion) 방식으로 문제를 해결할 것배열의 각 문자열 요소에 대해 첫 번째 단어(첫 글자)를 대문자로 변환할 것또한 결과를 저장하기 위해 별도의 새로운 배열을 만들지 않고, 기존 배열 자체를 변경(in-place 방식)하여 처리해야 합니다.예시예를 들어 입력 배열이 다음과 같다면,const arr = [apple, banana, orange, grapes];함수 실
JavaScript에서 요소들의 배열을 입력받아 처리하는 함수를 작성해야 합니다. 이 배열에는 undefined 값이 포함되어 있을 수도 있습니다.우리가 만들 함수는 배열의 길이를 반환하되, 실제로 값이 정의된(defined) 요소의 개수만 계산에 포함해야 합니다. 즉, undefined나 빈 슬롯(empty slot)은 개수에서 제외됩니다.예제 코드이를 구현한 코드는 다음과 같습니다.const arr = [12, undefined, blabla, ,true, 44]; const countDefined = (arr = []) =&g
문제 소개 다음과 같이 값들이 담긴 배열이 있다고 가정해 보겠습니다. const arr = [ { value1:[1,2], value2:[{type:A}, {type:B}] }, { value1:[3,5], value2:[{type:B}, {type:B}] } ]; 배열의 각 요소는 두 개의 속성을 가진 객체입니다. value1은 숫자 배열이며, value2는 type 속성을 가진 객체들의 배열입니다. 우리가 작성해야 할 JavaScript 함수는 이러한 배열을 입력으로 받아, 객체의 &
JavaScript로 개발을 하다 보면 이미지 정보를 담은 객체 배열에서 중복된 항목을 걸러내야 하는 경우가 자주 발생합니다. 예를 들어 갤러리 기능을 구현할 때 같은 이미지가 여러 번 등록되어 있다면, 이를 정리해 주는 로직이 필요하죠.문제 상황다음과 같이 이미지 데이터가 담긴 배열이 있다고 가정해 보겠습니다.const arr = [{ image: jv2bcutaxrms4i_img.png, gallery_image: true }, { image: abs.png, gallery_image: true },
문제 상황다음과 같은 객체 배열이 있다고 가정해 보겠습니다.const arr = [ {area: NY, name: Bla, ads: true}, {area: DF, name: SFS, ads: false}, {area: TT, name: SDSD, ads: true}, {area: SD, name: Engine, ads: false}, {area: NSK, name: Toyota, ads: false}, ];여기서 우리는 첫 번째 인수로 위와 같은 객체 배열을, 두 번째 인수로 문자열 리터럴 배열
16진수 색상 코드(hex color)를 유일한 인자로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 입력으로 전달된 색상의 보색(complementary color)을 계산하여 반환해야 합니다.보색이란?보색은 색상환에서 서로 마주 보는 위치에 있는 색을 의미합니다. 16진수 색상 코드에서는 전체 비트를 반전시킨 값, 즉 각 자릿수의 최댓값에서 입력값을 뺀 결과가 보색이 됩니다. 예를 들어 흰색(#ffffff)의 보색은 검은색(#000000)입니다.입출력 예시함수의 동작을 확인할 수 있는 몇 가지 입력과 출력 예시는
실무에서는 여러 개의 객체가 들어 있는 배열을 하나의 객체로 재구성해야 하는 경우가 종종 있습니다. 예를 들어, 다음과 같이 학생 정보를 담은 객체 배열이 있다고 가정해 보겠습니다.const arr = [{ name: A, idNo: 1, marks: { math: 98, &nb
리터럴 값(숫자, 문자열 등)으로 구성된 배열을 입력받아 처리하는 JavaScript 함수를 작성해야 합니다.입력받은 배열에는 동일한 값이 여러 번 나타나는 경우가 있을 수 있습니다. 이때 함수는 단순히 중복을 정리하는 것이 아니라, 한 번이라도 반복해서 등장한 값은 해당 요소의 모든 인스턴스를 배열에서 완전히 제거해야 합니다.예를 들어 배열에 숫자 2가 두 번 포함되어 있다면, 결과 배열에는 2가 하나만 남는 것이 아니라 아예 존재하지 않아야 합니다.해결 접근 방식핵심 아이디어는 간단합니다. 어떤 값이 배열에서 딱 한 번만 등장했
문제 상황숫자 배열을 첫 번째 인수로, 정수 n을 두 번째 인수로 받는 자바스크립트 함수를 작성해야 합니다. 이 함수는 배열에서 가장 큰 값 n개를 골라내어, 해당 숫자들만으로 구성된 새로운 배열을 반환해야 합니다.구현 방법가장 간단하고 직관적인 접근 방식은 다음과 같습니다.원본 배열이 변경되지 않도록 slice()로 복사본을 만듭니다.복사본을 내림차순으로 정렬합니다.정렬된 배열의 앞부분에서 n개의 요소를 잘라내어 반환합니다.예제 코드이를 구현한 코드는 다음과 같습니다.const arr = [3, 4, 12, 1, 0, 5, 22,
문제 소개문자열 하나를 유일한 인수로 받아, 해당 문자열의 이진수(binary) 표현을 만들어 반환하는 자바스크립트 함수를 작성해야 합니다.예를 들어, 입력 문자열이 다음과 같다면 −const str = Hello World;함수는 아래와 같은 형태의 출력을 반환해야 합니다.const output = 1001000 1100101 1101100 1101100 1101111 100000 10101111101111 1110010 1101100 1100100;해결 접근 방식이 문제는 다음 세 가지 핵심 메서드만 활용하면 간단하게
문제 정의2진수(binary) 코드가 담긴 문자열을 입력받아, 원래의 알파벳 텍스트 형태로 변환하여 반환하는 자바스크립트 함수를 작성해야 합니다.예를 들어, 아래와 같은 2진수 입력 문자열이 있다고 가정해 보겠습니다 −const str = 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100;그렇다면 함수는 다음과 같은 결과를 반환해야 합니다 −const output = Hello World;해결 접근 방식이
문제 상황 JavaScript를 사용하다 보면 쉼표(,)로 구분된 문자열을 배열로 변환해야 하는 경우가 자주 발생합니다. 예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다. const str = a, b, c, d , e; 이 문자열에는 요소 사이에 불필요한 공백이 포함되어 있습니다. 단순히 split(,)만 실행하면 d 처럼 공백이 섞인 값이 배열에 그대로 남게 되어 원하는 결과를 얻기 어렵습니다. 따라서 우리가 작성해야 할 함수는 다음 두 가지 작업을 순차적으로 수행해야 합니다. 문자열에 포함된 모든 공백(whites
JavaScript를 다루다 보면 객체로 이루어진 배열을 각 객체의 값만 담고 있는 배열의 배열 형태로 변환해야 하는 경우가 종종 있습니다. 예를 들어 차트 라이브러리에 데이터를 전달하거나 CSV 형식으로 내보낼 때 이러한 변환이 유용하게 사용됩니다.문제 상황다음과 같이 객체들을 요소로 가지는 배열이 있다고 가정해 보겠습니다.const arr = [ {Date:2014,Amount1:90,Amount2:800}, {Date:2015,Amount1:110,Amount2:300}, {Date:2016,Amount1
정렬된 숫자 배열에는 다음과 같이 연속된 숫자들이 포함될 수 있습니다.const arr = [1, 2, 3, 5, 7, 8, 9, 11];우리는 이러한 배열을 인자로 받는 JavaScript 함수를 작성해야 합니다.이 함수의 역할은 배열 전체를 하나의 시퀀스 문자열로 만드는 것입니다. 규칙은 간단합니다. 배열에서 연속으로 이어지는 숫자 구간은 시작 숫자와 끝 숫자만 남기고 그 사이의 숫자들은 대시(-)로 축약하며, 연속되지 않은 나머지 숫자들은 원래 그대로 표기합니다.따라서 위 배열의 경우 결과는 다음과 같아야 합니다.const o
개요JavaScript로 개발을 하다 보면 자식(child) 데이터와 부모(parent) 데이터가 각각 별도의 배열로 존재하는 경우가 많습니다. 이럴 때 특정 키(예: id)를 기준으로 두 배열을 하나의 구조로 결합해야 하는 일이 자주 발생합니다. 이번 글에서는 이러한 작업을 수행하는 방법을 예제와 함께 살펴보겠습니다.문제 상황다음과 같이 자식 객체 배열과 부모 객체 배열이 있다고 가정해 보겠습니다.const child = [{ id: 1, name: