JavaScript 프로그래밍에서 두 개의 숫자 m과 n을 입력받아, m의 배수 중 처음 n개를 담은 배열을 반환하는 함수가 필요한 경우가 종종 있습니다.예를 들어 m = 4, n = 6이 주어지면 함수는 4부터 시작하여 4의 배수 여섯 개, 즉 [4, 8, 12, 16, 20, 24]를 배열 형태로 반환해야 합니다.구현 방법이 문제는 반복문을 활용하면 간단하게 해결할 수 있습니다. 시작 값은 m으로 설정하고, 매 반복마다 m씩 값을 증가시키며 총 n번 결과 배열에 요소를 추가하는 방식입니다.화살표 함수(arrow function)
문제 개요두 개의 인수를 받는 JavaScript 함수를 작성해야 합니다.반복되는 요소를 포함할 수 있는 리터럴 배열 arr허용 기준이 되는 숫자 n(limit)이 함수는 배열의 모든 요소가 n번 미만으로만 나타나는지 검증해야 합니다. 만약 어떤 요소라도 n번 이상 반복된다면 false를 반환하고, 그렇지 않다면 true를 반환합니다.해결 접근 방식먼저 reduce() 메서드를 사용해 배열을 순회하면서 각 요소의 등장 횟수를 객체에 누적합니다. 이후 Object.values()로 추출한 빈도 값들에 대해 every() 메서드를 적용
문자열이 오직 두 종류의 문자, 즉 (와 )로만 구성되어 있다고 가정해 봅시다. 우리는 이러한 문자열을 입력받아, 필요한 만큼 ( 또는 )를 삽입해 괄호의 균형을 맞추는 함수를 작성해야 합니다. 그리고 함수는 균형을 맞추기 위해 삽입한 문자의 최소 개수를 반환해야 합니다. 문제 예시 예를 들어, 다음과 같은 문자열이 주어졌다고 가정해 보겠습니다. const str = ())); 이 경우 출력값은 2가 되어야 합니다. 문자열 앞에 ((를 추가하면 ((()))가 되어 모든 괄호의 짝이 맞기 때문입니다. 해결 접근법: 스택(Stack)
다음과 같은 객체 배열이 있다고 가정해 보겠습니다.const arr = [ { first_name: Lazslo, last_name: Jamf }, { first_name: Pig, last_name: Bodine }, { first_name: Pirate, last_name: Prentice } ];이 배열을 last_name 속성(키)의 알파벳 순서에 따라 정렬하는 JavaScript 함수를 작성해야
JavaScript로 개발하다 보면 객체 배열을 특정 조건에 따라 재정렬해야 하는 경우가 자주 있습니다. 이번 글에서는 flag 속성이 false인 요소를 배열 앞쪽으로 옮기되, 원래의 등장 순서는 그대로 유지하는 방법을 알아보겠습니다.문제 상황다음과 같은 객체 배열이 있다고 가정해 보겠습니다.const arr = [ {flag: true, other: 1}, {flag: true, other: 2}, {flag: false, other: 3}, {flag: true, other: 4}, {fla
숫자 배열을 입력받아, 배열 안의 모든 숫자를 나머지 없이 정확히 나눌 수 있는 수를 반환하는 JavaScript 함수를 작성해야 하는 경우가 있습니다. 이 문제는 각 숫자의 약수를 구한 뒤, 모든 요소에 공통으로 존재하는 약수만 추리는 방식으로 해결할 수 있습니다.문제 해결 접근 방식핵심 아이디어는 다음과 같습니다.배열의 각 숫자에 대해 1보다 큰 약수 목록을 만듭니다.첫 번째 숫자의 약수 목록을 기준으로 삼고, 이후 숫자들의 약수 목록과 교집합을 구합니다.마지막까지 남은 값들이 바로 모든 숫자를 나눌 수 있는 공통 약수입니다.예
이번 글에서는 정수 또는 실수(부동소수점 숫자)를 입력받아 처리하는 JavaScript 함수를 작성해 보겠습니다.요구 사항은 다음과 같습니다.입력값이 실수라면 소수점 이하 자릿수의 개수를 반환합니다.입력값이 정수라면 0을 반환합니다.구현 아이디어가장 간단하고 직관적인 방법은 숫자를 문자열로 변환한 뒤, 소수점(.)이 포함되어 있는지 확인하는 것입니다. 소수점이 있다면 소수점을 기준으로 문자열을 나누고, 소수 부분의 길이를 측정하면 됩니다.예제 코드 { // 숫자를 문자열로 변환 const numStr = String(num)
이번 글에서는 문자열을 인자로 받아, 그 안의 각 알파벳 문자에 대응되는 숫자를 출력하는 자바스크립트 함수를 작성해 보겠습니다.알파벳과 숫자의 매핑 규칙각 알파벳은 다음과 같이 순서대로 숫자에 매핑됩니다.a = 1b = 2c = 3d = 4e = 5...y = 25z = 26단, 처리 과정에서 특수문자와 공백은 모두 제거해야 합니다.입력 및 출력 예시예를 들어 입력값이 다음과 같다면,"hello man"출력 결과는 아래와 같습니다."8,5,12,12,15,13,1,14"구현 코드위 요구사항을 충족
자바스크립트에서 Math.sqrt() 함수를 사용하지 않고 숫자의 제곱근을 계산하는 함수를 작성해야 하는 경우가 있습니다. 이는 알고리즘 학습이나 코딩 테스트 준비 과정에서 자주 마주치는 문제입니다. 이번 글에서는 이진 탐색(Binary Search)을 활용해 제곱근을 구하는 방법을 단계별로 살펴보겠습니다.구현 코드먼저 전체 코드를 확인해 보겠습니다. { let mid = (i + j) / 2; let mul = mid * mid; if ((mul === n) || (Math.abs(mul - n) < 0.00
숫자를 나타내는 문자열을 입력받아, 맨 앞에 있는 0(선행 제로)을 공백으로 바꾸는 자바스크립트 함수를 작성해야 하는 경우가 있습니다. 이때 주의할 점은 숫자 앞에 원래 존재하던 공백은 그대로 유지해야 한다는 것입니다.예를 들어 문자열 값이 다음과 같다고 가정해 보겠습니다.004590808그렇다면 출력 결과는 다음과 같아야 합니다.4590808정규 표현식으로 해결하기이 문제는 정규 표현식을 활용하면 간단하게 해결할 수 있습니다. 핵심 아이디어는 다음과 같습니다./^\s*0+/ : 문자열 시작 위치에서 0개 이상의 공백(\s*) 뒤에
문제 상황JavaScript 개발을 하다 보면 두 개의 배열을 하나의 객체 배열로 합쳐야 하는 경우가 자주 있습니다. 예를 들어 다음과 같은 두 개의 배열이 있다고 가정해 보겠습니다.const options = [A, B, C, D];const values = [true, false, false, false];이 두 배열의 요소를 인덱스 기준으로 짝지어, 아래와 같은 형태의 객체 배열(JSON)로 변환하고자 합니다.const response = [ { opt: A, val: true },&n
문제 정의다음과 같은 객체 배열과 이름 배열이 있다고 가정해 보겠습니다.객체 배열const main = [ {name: "Karan", age: 34}, {name: "Aayush", age: 24}, {name: "Ameesh", age: 23}, {name: "Joy", age: 33},
JavaScript에서 객체를 다루다 보면 특정 속성(property)을 삭제해야 하는 경우가 자주 발생합니다. 이 글에서는 JSON 객체에서 원하는 속성을 깔끔하게 제거하는 가장 좋은 방법을 소개합니다.예제 객체 생성먼저 다음과 같이 객체를 하나 만들어 보겠습니다.const myObject = { ircEvent: PRIVMSG, method: newURI, regex: ^https://.* };여기서 우리가 해야 할 작업은 regex 속성을 제거하여 아래와 같은 새로운 myObject를 만드는 것입니다.co
JavaScript에서 객체(Object)의 크기를 구한다는 것은, 해당 객체가 가지고 있는 속성(property)의 개수를 세는 것을 의미합니다. 배열이라면 length 속성으로 간단히 확인할 수 있지만, 일반 객체나 JSON 객체에는 이러한 내장 속성이 없기 때문에 몇 가지 방법을 활용해야 합니다.예제 객체 준비먼저 다음과 같은 객체가 있다고 가정해 보겠습니다.const obj = { name: Ramesh, age: 34, occupation: HR Manager, address: Tilak Nag
문제 소개 다음과 같은 2차원 배열이 있다고 가정해 보겠습니다. const arr = [ [1, 2, 3, 4], [12,13,14,5], [11,16,15,6], [10,9, 8, 7] ]; 입력으로 주어지는 배열은 반드시 정사각형 행렬(square matrix)이라고 가정합니다. 이 배열을 입력받아, 바깥쪽부터 시작해 나선(spiral) 모양으로 안쪽으로 감아 들어가며 요소를 차례대로 꺼내고, 그 값들로 새로운 1차원 배열을 구성하는 자바스크립트 함수를 작성해야 합니다. 마치 행렬의 외곽을 따라 이동
문제 소개두 개의 배열을 인수로 전달받아, 각 배열에서 요소를 하나씩 번갈아 가져와 새로운 배열 하나로 병합하는 JavaScript 함수를 작성해야 합니다.예시입력 배열이 다음과 같다고 가정해 보겠습니다.const arr1 = [4, 3, 2, 5, 6, 8, 9];const arr2 = [2, 1, 6, 8, 9, 4, 3];이 경우 기대하는 출력 결과는 다음과 같습니다.const output = [4, 2, 3, 1, 2, 6, 5, 8, 6, 9, 8, 4, 9, 3];즉, 첫 번째 배열의 요소와 두 번째 배열의 요소가 한 개
이번 글에서는 숫자 배열을 입력받아 동일한 숫자들을 모두 한 인덱스에 합산하는 JavaScript 함수를 작성해 보겠습니다. 예시 입력 배열이 다음과 같다면 − const arr = [20, 10, 15, 20, 15, 10]; 출력 결과는 다음과 같아야 합니다 − const output = [40, 20, 30]; 즉, 값이 20인 요소 두 개(20 + 20 = 40), 값이 10인 요소 두 개(10 + 10 = 20), 값이 15인 요소 두 개(15 + 15 = 30)가 각각 하나씩만 남도록 합쳐지는 것입니
이번 글에서는 문자열 배열을 입력받아 그중 길이가 가장 짧은 문자열을 찾아 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.단순히 for 반복문을 사용해 배열을 순회하며 가장 짧은 문자열의 인덱스를 저장하는 방식으로도 구현할 수 있지만, 여기서는 배열 메서드인 reduce()를 활용해 더욱 간결하게 처리해 보겠습니다.reduce()의 누적값(accumulator)에는 지금까지 발견된 가장 짧은 문자열의 인덱스(ind)와 길이(len)를 함께 저장합니다. 초기값으로 인덱스는 -1, 길이는 Infinity를 설정하면,
JavaScript 객체의 모든 프로퍼티 값을 담은 배열을 만들어야 하는 경우가 종종 있습니다. 예를 들어, 다음과 같은 객체가 있다고 가정해 보겠습니다.{ firstName: John, lastName: Smith, isAlive: true, age: 25}이 객체에서 다음과 같은 배열을 만들어야 합니다.const myarray = [John, Smith, true, 25];그렇다면 이 작업을 수행하는 함수를 직접 작성해 보겠습니다.예제 코드Object.keys() 메서드를 활용하면 객체의 모든 키를 가져온
이번 글에서는 숫자를 입력받아 각 자릿수의 합을 계산한 뒤, 그 합보다 크거나 같은 소수(prime number) 중 가장 가까운 값을 반환하는 JavaScript 함수를 작성해 보겠습니다.예를 들어 입력값이 56563이라면 각 자릿수의 합은 5 + 6 + 5 + 6 + 3 = 25입니다. 25는 소수가 아니므로, 25보다 크거나 같은 첫 번째 소수인 29를 결과로 반환해야 합니다.구현 방법이 문제는 세 단계로 나누어 해결할 수 있습니다.1. 자릿수 합 계산하기재귀 함수를 사용하여 숫자를 10으로 나누면서 마지막 자릿수(num %