문제 상황다음과 같이 여러 영화 정보를 담고 있는 객체 배열이 있다고 가정해 보겠습니다.const arr = [ {id: 1, name: Snatch, type: crime}, {id: 2, name: Witches of Eastwick, type: comedy}, {id: 3, name: X-Men, type: action}, {id: 4, name: Ordinary
JavaScript에서 다음과 같이 하나의 객체 안에 여러 객체가 중첩된 구조(Object of Objects)를 다루다 보면, 내부 객체들을 특정 속성 값 기준으로 정렬해야 하는 경우가 종종 발생합니다.const obj = { CAB: { name: CBSSP, position: 2 }, NSG: { name: NNSSP, position: 3 }, EQU: { name: SSP, position: 1
임의의 길이를 가진 숫자 문자열을 입력받아, 이를 대응되는 알파벳 문자열로 변환하는 JavaScript 함수를 작성해 보겠습니다.변환 규칙은 간단합니다. 숫자 1부터 26까지가 각각 알파벳 소문자 a부터 z까지와 일대일로 대응됩니다. 즉, 1은 a, 2는 b, …, 26은 z입니다. 여기서 주의할 점은 한 자리 숫자뿐만 아니라 두 자리 숫자(10~26) 역시 하나의 알파벳으로 변환될 수 있다는 것입니다.동작 예시예를 들어 숫자 문자열이 다음과 같다면,const str = 78956;출력 결과는 다음과 같습니다.const output
문제 상황 다음과 같이 티켓 정보가 담긴 JSON 배열이 있다고 가정해 보겠습니다. const arr = [ { quantity: 1, description: VIP Ticket to Event }, { quantity: 1, description: VIP Ticket to Event }, { quantity: 1, description: VIP Ticket to Event }, { quantity: 1, description: Regular Tick
이번 글에서는 길이가 같은 두 개의 배열을 입력받아, 각 배열에서 같은 인덱스에 위치한 값끼리 곱한 후, 그 결과들을 모두 더하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.문제 이해하기예를 들어 다음과 같은 두 개의 배열이 입력으로 주어졌다고 가정해 보겠습니다.const arr1 = [2, 3, 4, 5];const arr2 = [4, 3, 3, 1];이 경우 각 인덱스별로 값을 곱한 뒤 모두 더하면 결과는 34가 되어야 합니다.(4*2 + 3*3 + 4*3 + 5*1) = 34구현 방법가장 기본적인 접근 방식은 f
알고리즘 문제를 풀다 보면 하나의 배열을 여러 개의 부분 집합으로 나누는 파티션(partition) 문제를 자주 만나게 됩니다. 이번 글에서는 특히 각 부분 집합 안에 동일한 요소가 중복되지 않도록 하면서, 전체 배열을 구성하는 모든 조합을 찾는 방법을 JavaScript 코드와 함께 살펴보겠습니다.문제 정의예를 들어 다음과 같은 배열이 있다고 가정해 보겠습니다.const arr = [A, A, B, B, C, C, D, E];여기서 우리가 원하는 것은 이 배열의 모든 요소를 사용하여 전체를 이루는 조합을 찾되, 하나의 부분 집합
두 개의 JSON 객체가 있다고 가정해 보겠습니다.const obj1 = {a: apple, b: banana, c: carrot}; const obj2 = {a: apple, e: egg, b: banana, c: carrot, d: dog};여기서 우리는 이런 형태의 두 객체를 인자로 받아 비교하는 JavaScript 함수를 작성해야 합니다. 목표는 어느 한쪽 객체에서 데이터를 삭제하지 않은 상태로 두 객체를 비교하여 Boolean(true/false) 값을 얻는 것입니다.예를 들어 위 데이터의 경우, 두 객체에 공통으로 존재하
웹 개발을 하다 보면 URL 정보와 고유 ID를 담은 객체 배열에서 중복 데이터를 정리해야 하는 경우가 자주 발생합니다. 다음과 같은 객체 배열이 있다고 가정해 보겠습니다.const arr = [ { url: www.example.com/hello, id: 22 }, { url: www.example.com/hello, id: 22 }, { url: www.example.com/hello-how-are-you,
JavaScript에서는 요소 개수가 서로 다른 여러 개의 배열이 주어졌을 때, 각 배열에서 하나의 요소씩 선택해 만들 수 있는 모든 조합을 생성해야 하는 경우가 자주 있습니다. 이번 글에서는 배열의 개수와 길이가 유동적이어도 동작하는 범용 조합 생성 함수를 재귀(Recursion)를 활용해 구현하는 방법을 알아보겠습니다.문제 이해하기예를 들어 다음과 같은 데이터가 있다고 가정해 보겠습니다.const arr = [ [0,1], [0,1,2,3],
숫자들의 집합이 주어졌을 때, 함수의 입력값으로 전달된 특정 숫자와 같거나 그보다 큰 수 중 가장 가까운 값을 가진 키(key)를 찾아야 하는 경우가 있습니다.예를 들어, 다음과 같은 숫자 집합이 정의되어 있다고 가정해 보겠습니다.const numbers = { A:107, B:112, C:117, D:127, E:132, F:140, G:117, H:127, I:132, J:132, K:140, L:147, M:117, N:127,
JavaScript 개발을 하다 보면 두 개의 배열에 담긴 값들을 서로 조합해야 하는 경우가 자주 발생합니다. 예를 들어 색상 옵션과 사이즈 목록을 결합하거나, 여러 필터 조건을 조합하는 상황이 대표적입니다. 이번 글에서는 두 배열의 요소로 가능한 모든 조합을 만드는 방법을 단계별로 살펴보겠습니다.문제 정의다음과 같은 두 개의 문자열 배열이 있다고 가정해 보겠습니다.const arr1 = [A, B, C];const arr2 = [1, 2, 3];첫 번째 배열의 각 요소를 두 번째 배열의 모든 요소와 차례대로 짝지어 새로운 배열을
이번 글에서는 사용자로부터 숫자를 입력받아, 그 숫자가 유효한 값인지 확인한 뒤 각 자릿수를 하나씩 화면에 출력하는 JavaScript 프로그램을 만들어 보겠습니다.요구 사항 정리프로그램의 동작 흐름은 다음과 같습니다.사용자가 값을 입력하고 버튼을 클릭하면 함수가 실행됩니다.입력값이 유효한 숫자인지 검사합니다.유효한 숫자라면, 해당 숫자의 모든 자릿수를 화면에 하나씩 분리하여 출력합니다.동작 예시예를 들어 사용자가 다음과 같이 입력했다고 가정해 보겠습니다.43354그렇다면 화면에는 아래와 같이 각 자릿수가 한 줄씩 출력되어야 합니다
JavaScript를 다루다 보면 객체 배열 안에 특정 속성 값이 몇 번 등장하는지 집계해야 하는 경우가 자주 있습니다. 예를 들어 항공권 검색 결과에서 경유와 직항 노선이 각각 몇 개인지 파악하는 상황을 생각해 볼 수 있습니다.이번 글에서는 reduce나 forEach를 활용해 객체 배열의 특정 값별 개수를 세고, 그 결과를 원하는 형태로 출력하는 방법을 알아보겠습니다.문제 상황다음과 같이 항공 노선 정보를 담은 객체 배열이 있다고 가정해 보겠습니다.const routes = [ { flyFrom: CDG, fl
JavaScript로 개발하다 보면 하나의 객체에 담긴 여러 키/값 쌍을 각각 독립된 객체로 분리해야 하는 경우가 종종 있습니다. 예를 들어 다음과 같은 객체가 있다고 가정해 보겠습니다.const obj = { value 0: value, value 1: value, value 2: value, value 3: value, value 4: value, value 5: value, value 6: value, value 7: value, value 8: value,
문제 소개객체 여러 개를 담고 있는 배열이 있고, 이 배열의 첫 번째 절반은 오름차순으로, 두 번째 절반 역시 오름차순으로 정렬하되, 두 그룹의 요소가 서로 섞이지 않도록 하는 함수를 작성해야 한다고 가정해 보겠습니다.예를 들어 다음과 같은 샘플 배열이 있다고 합시다 −const arr = [ {id:1, x: 33}, {id:2, x: 22}, {id:3, x: 11},
JavaScript에서는 문자열 형태로 주어진 수학 표현식을 실제로 계산해야 하는 경우가 종종 있습니다. 예를 들어 사용자 입력이나 외부 데이터에서 받아온 1+23+4+5-30 같은 문자열을 그대로 두면 단순한 텍스트일 뿐이지만, 이를 파싱하여 숫자 결과를 얻어야 할 때가 있습니다.문제 정의문자열로 된 수학식을 인수로 받아, 해당 식의 계산 결과를 반환하는 함수를 작성해 보겠습니다.예를 들어 다음과 같은 문자열이 입력으로 주어졌다면 −const str = 1+23+4+5-30;출력값은 다음과 같아야 합니다.3접근 방법핵심
정렬된 정수 배열과 목표 평균(target average)을 각각 첫 번째, 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열 안에 두 값의 평균이 목표 평균과 정확히 일치하는 값 쌍(pair)이 존재하는지 판별해야 합니다.투 포인터(Two Pointer) 접근 방식이 문제는 추가 공간 복잡도 O(1), 시간 복잡도 O(n)으로 해결할 수 있는 방법이 있습니다. 핵심은 배열이 이미 정렬되어 있다는 사실을 활용하는 것으로, 이를 위해 두 개의 인덱스를 사용합니다.y: 배열의 시작(begin)에서 끝(en
문제 정의다음과 같이 하나의 숫자를 나타내는 긴 문자열이 있다고 가정해 보겠습니다.const str = 11222233344444445666;이 문자열을 입력으로 받아 처리하는 JavaScript 함수를 작성해야 합니다. 함수는 객체(object)를 반환해야 하며, 이 객체는 다음 두 가지 역할을 수행합니다.문자열에 등장하는 각 고유 숫자마다 고유한 id 속성을 부여합니다.해당 숫자가 문자열에 몇 번 나타나는지 그 횟수를 displayed 속성에 저장합니다.따라서 위 문자열에 대한 최종 출력 결과는 다음과 같은 형태가 됩니다.con
문제 이해하기양의 정수 다섯 개로 이루어진 배열이 주어졌을 때, 그중 정확히 네 개의 정수를 더하여 만들 수 있는 최솟값과 최댓값을 구하는 것이 이번 과제입니다.결과는 최솟값과 최댓값을 공백으로 구분해 한 줄로 출력하거나, 배열 형태로 반환하면 됩니다. 입력 배열이 항상 정렬되어 있는 것은 아니라는 점에 유의해야 합니다.예시예를 들어 다음과 같은 배열이 주어졌다고 가정해 보겠습니다.const arr = [1, 3, 5, 7, 9]네 개의 수를 더한 최소 합은 다음과 같습니다.1 + 3 + 5 + 7 = 16반면 최대 합은 다음과 같
다음과 같이 여러 개의 객체를 담고 있는 배열이 있다고 가정해 보겠습니다.const arr = [ {_id : 1, S : 2}, {_id : 1, M : 4}, {_id : 2, M : 1}, {_id : 6 , M : 1}, {_id : 3, S : 3} ];우리가 작성해야 할 함수는 이러한 배열을 입력받아 _id 키