Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript

  1. JavaScript로 배열의 인접 요소 쌍 중 최대 곱 구하기

    이번 글에서는 양수와 음수를 모두 포함하는 숫자 배열을 입력받아, 인접한 두 요소의 곱 중 가장 큰 값을 반환하는 JavaScript 함수를 작성해 보겠습니다.문제 이해하기배열에서 서로 붙어 있는 두 요소(인접 요소)의 곱을 모두 계산한 뒤, 그중 최댓값을 찾는 것이 목표입니다.예를 들어 다음과 같은 배열이 주어졌다고 가정해 보겠습니다.const arr = [-23, 4, -3, 8, -12];이 경우 각 인접 요소 쌍의 곱은 다음과 같습니다.-23 × 4 = -924 × (-3) = -12-3 × 8 = -248 × (-12) =

  2. JavaScript로 특정 숫자가 다른 숫자의 거듭제곱인지 확인하는 방법

    문제 이해하기두 개의 숫자 m과 n을 입력받아, m이 n의 거듭제곱인지 판별하는 JavaScript 함수를 작성해야 합니다. m이 n의 거듭제곱이라면 true를, 그렇지 않다면 false를 반환하면 됩니다.예시는 다음과 같습니다.m = 8, n = 2 → true (2³ = 8)m = 100, n = 10 → true (10² = 100)m = 0.01, n = 10 → true (10⁻² = 0.01)m = 21, n = 3 → false해결 접근 방식가장 직관적인 방법은 m을 n으로 계속 나누거나 곱하면서 정확히 1에 도달하는지

  3. JavaScript로 배열에서 N개의 연속된 홀수 찾기

    이번 글에서는 숫자 배열을 첫 번째 인수로, 그리고 하나의 숫자 n을 두 번째 인수로 받는 JavaScript 함수를 작성해 보겠습니다.이 함수는 배열 안에 n개의 연속된 홀수가 존재하면 true를, 존재하지 않으면 false를 반환해야 합니다.문제 이해하기예를 들어, 입력 배열과 숫자가 다음과 같다고 가정해 봅시다.const arr = [3, 5, 3, 5, 4, 3]; const n = 4;이 경우 출력값은 true가 되어야 합니다. 왜냐하면 배열의 처음 네 개 숫자(3, 5, 3, 5)가 모두 홀수이기 때문입니다.접근 방법가장

  4. JavaScript로 반복 문자 개수 세기: 문자열 압축 방법

    문자열을 다루다 보면 각 문자가 몇 번 반복되는지 세어야 하는 경우가 종종 있습니다. 이번 글에서는 문자열 내 연속된 문자의 개수를 세어 개수+문자 형태로 변환하는 JavaScript 함수를 만들어 보겠습니다.문제 정의예를 들어, 다음과 같은 문자열이 있다고 가정해 봅시다.const str = aabbcde;이 문자열에는 a가 2개, b가 2개, c·d·e가 각각 1개씩 포함되어 있습니다.우리는 이러한 문자열을 입력받아, 각 문자의 등장 횟수를 문자 앞에 붙인 새로운 문자열을 생성하는 JavaScript 함수를 작성해야 합니다.따라

  5. 자릿수 근(Digit Root) 기준으로 배열 정렬하는 방법 - JavaScript

    자릿수 근(Digit Root)이란?자릿수 근(digit root)은 양의 정수를 구성하는 모든 자릿수의 합으로 정의됩니다. 예를 들어 13의 자릿수 근은 1 + 3 = 4가 됩니다.이번 글에서는 정수 배열을 입력받아 자릿수 근을 기준으로 오름차순 정렬하는 JavaScript 함수를 작성해 보겠습니다. 정렬 조건은 다음과 같습니다.숫자 a가 b보다 앞에 오려면 a의 자릿수 근이 b의 자릿수 근보다 작거나 같아야 합니다.두 숫자의 자릿수 근이 같다면, 일반적인 크기 비교에서 더 작은 숫자가 먼저 와야 합니다.예를 들어 4와 13은 자

  6. 자바스크립트로 배열에서 n번째 누락된 숫자 찾는 방법

    단위 크기씩 엄격하게 증가하는 수열에서 일부 숫자가 누락된 경우를 생각해 봅시다.const arr = [2, 3, 4, 7, 11];여기서 우리는 이러한 배열을 첫 번째 인수로, 그리고 하나의 숫자 n을 두 번째 인수로 받는 자바스크립트 함수를 작성해야 합니다.이 함수는 배열에서 누락된 n번째 숫자를 찾아 반환해야 합니다.예시예를 들어 위 배열에서 n = 4라고 가정해 보겠습니다.그렇다면 출력 결과는 8이 되어야 합니다. 그 이유는 다음과 같습니다.이 배열에서 누락된 숫자들은 다음과 같습니다.1, 5, 6, 8즉, 네 번째로 누락된

  7. JavaScript 문자열을 반전시키는 함수

    이번 글에서는 문자열을 입력받아 원본 문자열을 거꾸로 뒤집은 새로운 문자열을 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.문제의 조건이 문제에는 두 가지 중요한 제약 조건이 있습니다.첫째, reverse(), split() 등과 같은 내장 String 메서드를 사용할 수 없습니다.둘째, 성능상 흔히 쓰이는 방식인 문자열을 배열로 변환한 후 뒤집는 방법도 허용되지 않습니다.따라서 우리는 반복문(loop)을 활용하여 문자열을 한 글자씩 순회하면서, 새로운 뒤집힌 문자열을 직접 만들어야 합니다.구현 아이디어핵심 로직

  8. 자바스크립트로 정렬된 숫자 배열에 숫자 삽입하기

    이 글에서는 첫 번째 인수로 정렬된 숫자 배열, 두 번째 인수로 단일 숫자를 받아, 해당 숫자를 기존 정렬 순서를 유지한 채 배열에 삽입하는 자바스크립트 함수를 작성하는 방법을 소개합니다. 여기서 중요한 제약 조건은 두 가지입니다. 숫자를 삽입한 후에도 배열 요소들이 오름차순으로 정렬된 상태를 유지해야 합니다. 새로운 배열을 추가로 생성하지 않고 기존 배열에서 직접(in-place) 작업해야 합니다. 접근 방식: 이진 탐색 + 제자리 삽입 삽입할 위치를 찾을 때 선형 탐색 대신 이진 탐색(Binary Search)을 사용하면 위

  9. JavaScript로 문자열이 동일한 하위 문자열의 반복으로 구성되어 있는지 확인하는 방법

    문자열을 인수로 받아, 해당 문자열이 동일한 문자 시퀀스가 반복되어 이루어져 있는지를 판별하는 JavaScript 함수를 작성해 보겠습니다. 함수는 조건을 만족하면 true, 그렇지 않으면 false를 반환합니다.여기서 주어진 문자열의 길이는 항상 1보다 크며, 반복되는 문자 시퀀스는 최소 한 번 이상 나타나야 한다는 조건이 있습니다.문제 이해하기예시를 통해 요구 사항을 살펴보겠습니다.aa → true: a라는 동일한 문자열 두 개로만 구성되어 있습니다.aaa → true: a라는 동일한 문자열 세 개로만 구성되어 있습니다.abca

  10. JavaScript에서 두 문자열의 유사도를 백분율로 계산하는 방법

    두 개의 문자열을 비교하여 서로 얼마나 유사한지를 백분율(%) 형태로 반환하는 JavaScript 함수를 작성해 보겠습니다. 여기서 백분율은 두 문자열이 공유하는 문자의 정도를 수치화한 값입니다. 두 문자열이 완전히 동일하다면 결과는 100이 되고, 공통된 문자가 하나도 없다면 결과는 0이 됩니다. 접근 방식: 레벤슈타인 거리(Levenshtein Distance) 문자열 유사도를 측정하는 가장 널리 쓰이는 방법은 레벤슈타인 거리입니다. 이는 한 문자열을 다른 문자열로 변환하기 위해 필요한 최소 편집 횟수(문자의 삽입·삭제·치환)를

  11. JavaScript에서 소스 배열들을 연결하여 대상 배열 형성하기

    서로 다른(distinct) 정수로 이루어진 배열 arr과, 정수 배열들을 요소로 가지는 배열 sourceArr이 주어집니다. sourceArr 내부의 정수들 역시 중복되지 않는다고 가정합니다.우리가 작성해야 할 함수는 sourceArr에 포함된 하위 배열들을 임의의 순서로 이어 붙여(concatenate) 목표 배열 arr을 완성하는지 판별합니다.단, 한 가지 중요한 제약 조건이 있습니다. 각 하위 배열 내부의 정수들은 절대 재배치할 수 없습니다. 이 조건을 지키면서 arr을 만드는 것이 가능하면 true, 불가능하면 false를

  12. 자바스크립트에서 숫자 배열을 빈도 기준으로 정렬하는 방법

    반복되는 숫자가 포함될 수 있는 숫자 배열을 입력받아 정렬하는 자바스크립트 함수를 작성해야 합니다.이 함수는 배열을 다음과 같은 규칙에 따라 정렬해야 합니다. 등장 횟수(빈도)가 가장 적은 요소부터 먼저 배치하고, 그 뒤로 빈도가 점점 높아지는 순서대로 나머지 요소들을 배치합니다.문제 예시예를 들어, 입력 배열이 다음과 같다고 가정해 보겠습니다.const arr = [1, 1, 2, 2, 2, 3];각 숫자의 등장 빈도를 살펴보면 다음과 같습니다.3 → 1번 등장1 → 2번 등장2 → 3번 등장따라서 정렬된 결과 배열은 다음과 같아

  13. 자바스크립트로 두 개의 동일한 문자 사이에서 가장 긴 부분 문자열 찾기

    문자열을 인수로 받아 두 개의 동일한 문자 사이에 끼어 있는 가장 긴 부분 문자열의 길이를 찾아 반환하는 자바스크립트 함수를 작성해야 합니다.문제 이해하기예를 들어, 입력 문자열이 다음과 같다고 가정해 보겠습니다.const str = avbghvh;이 경우 기대되는 출력은 다음과 같습니다.const output = 3;그 이유는 가장 긴 부분 문자열이 두 개의 v 사이에 위치한 bgh이며, 그 길이가 정확히 3이기 때문입니다.해결 접근 방식이 문제는 해시 맵(Map) 객체를 활용하면 선형 시간 안에 효율적으로 해결할 수 있습니다.

  14. JavaScript로 배열에서 최솟값과 최댓값을 제외한 평균 계산하기

    숫자로 이루어진 배열을 입력받아, 배열에서 가장 큰 값과 가장 작은 값을 제외한 나머지 요소들의 평균을 계산하는 JavaScript 함수를 작성해야 합니다.이 문제는 Array.prototype.reduce() 메서드를 활용하면 효율적으로 해결할 수 있습니다. reduce()를 사용하면 배열을 한 번만 순회하면서 요소들의 합계와 동시에 최댓값·최솟값까지 모두 구할 수 있기 때문입니다.구현 방법먼저 배열의 길이가 2 이하인 경우에는 최솟값과 최댓값을 제외하고 남는 요소가 없으므로 0을 반환하도록 예외 처리합니다.그다음 reduce()

  15. 자바스크립트 특수 배열 이해하기 – 특수 숫자를 찾는 함수 구현

    특수 배열(Special Array)이란? 어떤 배열에 양의 정수 num이 존재해서, 배열 안에서 num 이상인 요소의 개수가 정확히 num개가 되는 경우, 그 배열을 특수 배열이라고 부릅니다. 여기서 중요한 점은 num이 반드시 배열의 요소일 필요는 없다는 것입니다. 조건을 만족하는 수가 존재하기만 하면 충분합니다. 예제로 이해하기 const arr = [2, 1, 5, 2, 7, 9]; 위 배열을 자세히 살펴보면, num = 3일 때 3 이상인 요소는 5, 7, 9로 정확히 3개입니다. 흥미롭게도 3 자체는 배열에 속해 있지 않

  16. JavaScript로 배열의 모든 홀수 길이 하위 배열 합 구하기

    문제 소개숫자 배열을 첫 번째이자 유일한 입력값으로 받는 자바스크립트 함수를 작성해야 합니다. 이 함수의 역할은 원본 배열에서 만들 수 있는 모든 홀수 길이의 하위 배열(부분 배열)을 추출하고, 각 하위 배열의 합을 계산한 뒤 그 총합을 반환하는 것입니다.여기서 말하는 하위 배열(subarray)이란 배열에서 연속된 요소들로 이루어진 부분 수열을 의미합니다. 즉, 요소들을 임의로 조합한 것이 아니라 원래 배열의 순서를 그대로 유지해야 한다는 점에 유의하세요.입력 예시const arr = [1, 2, 3, 4, 5];이 배열에서 만들

  17. JavaScript - 문자열 배열에서 숫자 합이 가장 큰 신용카드 번호 찾는 법

    문제 상황 다음과 같이 데모용 신용카드 번호들이 담긴 배열이 있다고 가정해 보겠습니다. const arr = ['4916-2600-1804-0530', '4779-252888-3972', '4252-278893-7978', '4556-4242-9283-2260']; 이 배열을 인자로 받아 각 번호에서 숫자의 합이 가장 큰 신용카드 번호를 반환하는 함수를 작성해야 합니다. 만약 서로 다른 카드 번호가 같은 합을 가진다면, 그중 마지막에 위치한 카드 번호를 반환해야 한다는 조건이

  18. 자바스크립트 재귀 함수로 퀵 정렬(QuickSort) 구현하기

    이번 글에서는 숫자 배열을 입력받아 퀵 정렬(QuickSort) 알고리즘을 적용해 오름차순 또는 내림차순으로 정렬하는 자바스크립트 함수를 작성해 보겠습니다.퀵 정렬(QuickSort) 알고리즘이란?퀵 정렬은 분할 정복(Divide and Conquer) 방식에 기반한 대표적인 정렬 알고리즘으로, 다음 단계를 따릅니다.1단계 − 배열에서 임의의 요소 하나를 피벗(pivot)으로 선택합니다. 일반적으로 첫 번째 또는 마지막 요소를 사용하지만, 어떤 요소든 피벗이 될 수 있습니다.2단계 − 피벗을 기준으로 배열을 분할(partition)

  19. JavaScript 배열에서 선형 시간 O(n)으로 첫 번째 중복 숫자 찾기

    이번 문제에서는 1부터 n 사이의 정수로만 구성된, 길이가 n + 1인 읽기 전용(read-only) 배열을 입력으로 받는 JavaScript 함수를 작성해야 합니다.함수는 반드시 선형 시간 O(n) 안에 실행되어야 하며, 추가로 사용하는 공간 역시 최대 O(n)을 넘지 않아야 합니다. 이 조건을 만족하면서 배열 안에서 한 번 이상 등장하는 숫자, 즉 중복 숫자를 하나 찾아 반환하면 됩니다.문제 예시예를 들어 입력 배열이 다음과 같다고 가정해 보겠습니다.const arr = [3, 4, 1, 4, 1];이 배열에는 4와 1이 각각

  20. JavaScript로 n개 숫자의 덧셈·뺄셈 모든 조합 중 0에 가장 가까운 합 구하기

    문제 개요 임의 개수의 숫자(Number 타입) 인수를 받아, 각 숫자 사이에 더하기(+) 또는 빼기(−) 연산자를 배치할 수 있는 모든 가능한 조합을 계산하고, 그 결과 중 0에 가장 가까운 합을 반환하는 JavaScript 함수를 작성해야 합니다. 예시 예를 들어 인수가 1, 2, 3이라면 만들 수 있는 모든 조합은 다음과 같습니다. 1 + 2 + 3 → 6 1 − 2 − 3 → −4 1 + 2 − 3 → 0 1 − 2 + 3 → 2 이 경우 0에 가장 가까운 합은 정확히 0입니다. 접근 방식 모든 조합을 일일이 나열하면 숫

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:44/297  20-컴퓨터/Page Goto:1 38 39 40 41 42 43 44 45 46 47 48 49 50