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

JavaScript

  1. JavaScript로 두 개의 BST에서 두 수의 합(Two Sum) 찾기

    문제 개요이번 글에서는 두 개의 이진 탐색 트리(Binary Search Tree, BST)가 주어졌을 때, 각 트리에서 하나씩 노드를 골라 그 값의 합이 목표값(target)과 일치하는지 판별하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.함수는 두 BST의 루트 노드인 root1과 root2를 각각 첫 번째, 두 번째 인수로 받고, 세 번째 인수로 숫자 target을 받습니다.함수는 첫 번째 트리의 어떤 노드와 두 번째 트리의 어떤 노드의 값 합이 주어진 정수 target과 같아지는 경우가 존재할 때만 true를

  2. JavaScript로 인접 중복 없이 배열 요소 재배치하는 방법

    문제 상황리터럴 값들로 이루어진 배열 arr을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다. 이 배열에는 서로 인접하게 배치된 중복 요소들이 포함되어 있습니다.우리가 만들 함수는 배열 내에서 같은 값이 두 개 연속으로 나타나지 않도록 요소들을 재배열해야 합니다. 그리고 이러한 배치 방식이 최소 하나 이상 존재한다고 보장되므로, 재배열된 배열을 결과로 반환하면 됩니다.예를 들어, 함수에 다음과 같은 입력이 주어진다고 가정해 보겠습니다.const arr = [7, 7, 7, 8, 8, 8];그렇다면 기대되

  3. JavaScript로 구하는 가장 긴 문자열 체인(Longest String Chain)의 길이

    단어 체인(Word Chain)이란?word1에 정확히 한 글자를 임의의 위치에 추가했을 때 word2와 완전히 같아지는 경우, word1을 word2의 선행자(predecessor)라고 합니다. 예를 들어 abc는 abac의 선행자입니다.단어 체인(word chain)은 [word_1, word_2, ..., word_k](k >= 1) 형태의 단어 시퀀스로, word_1은 word_2의 선행자이고, word_2는 word_3의 선행자인 식으로 앞뒤 단어가 선행자 관계로 연결된 것을 의미합니다.문제 정의문자열 배열 arr를

  4. JavaScript 문자열에서 인접한 중복 문자 제거하기

    문제 정의JavaScript 함수는 문자열 str을 첫 번째이자 유일한 인수로 받아야 합니다.여기서 말하는 중복 제거(duplicate removal)란 인접하면서 서로 같은 두 글자를 선택해 제거하는 작업을 의미합니다.우리는 문자열에 대해 이러한 중복 제거를 더 이상 수행할 수 없을 때까지 반복해야 하며, 함수는 모든 중복 제거가 완료된 후의 최종 문자열을 반환해야 합니다.예를 들어, 함수에 다음과 같은 문자열이 입력되었다고 가정해 보겠습니다.const str = kllkmk;그렇다면 기대하는 출력 결과는 다음과 같습니다.cons

  5. JavaScript로 연결 리스트의 각 노드에서 '다음으로 큰 값' 찾기

    문제 정의 연결 리스트(Linked List)의 헤드(head)를 첫 번째이자 유일한 인수로 전달받아 처리하는 JavaScript 함수를 작성해야 합니다. 이 연결 리스트에는 숫자 데이터가 저장되어 있으며, 각 노드는 자신만의 다음으로 큰 값(next larger value)을 가질 수 있습니다. 노드 i에 대한 next_larger(node_i)는 다음 조건을 모두 만족하는 노드 j의 값입니다. j > i : 현재 노드보다 뒤에 위치한 노드여야 함 node_j.val > node_i.val : 값이 현재 노드보다 커

  6. JavaScript 알고리즘: (arr[i] + arr[j]) + (i − j)의 최댓값 구하기

    문제 소개이번 문제는 정수로 이루어진 배열 arr를 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성하는 것입니다.함수는 배열에서 인덱스 쌍 (i, j)을 선택해야 하며, 이때 (arr[i] + arr[j]) + (i − j) 값이 가능한 모든 인덱스 쌍 중에서 가장 커야 합니다. 그리고 계산된 최댓값을 반환하면 됩니다.예시예를 들어 함수에 다음 배열을 입력한다고 가정해 보겠습니다.const arr = [8, 1, 5, 2, 6];이 경우 기대하는 출력은 다음과 같습니다.const output = 11;출력 설명i =

  7. JavaScript로 배열을 합이 같은 세 부분으로 나눌 수 있는지 확인하는 방법

    문제 정의정수 배열을 첫 번째이자 유일한 인자로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 배열을 세 개의 비어 있지 않은 연속된 부분으로 나눌 수 있고, 각 부분의 합이 서로 같을 경우에만 true를 반환하고, 그렇지 않으면 false를 반환해야 합니다.예를 들어, 함수에 다음과 같은 배열이 입력되었다고 가정해 보겠습니다.const arr = [3, 3, 6, 5, -2, 2, 5, 1, -9, 4];이때 기대하는 출력 결과는 다음과 같습니다.const output = true;출력 결과 해설true가 반환되는

  8. JavaScript: 0을 최대 n개까지 1로 바꿔 만들 수 있는 최대 연속 1의 길이 구하기

    문제 정의0 또는 1만 담고 있는 이진 배열 arr을 첫 번째 인수로, 숫자 num을 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다.배열 안의 0을 최대 num개까지만 1로 바꿀 수 있으며, 함수는 변경 작업을 마친 뒤 1로만 이루어진 가장 긴 연속(contiguous) 부분 배열의 길이를 반환해야 합니다.예를 들어 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.const arr = [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0];const num = 2;그렇다면 출력은 다음과 같아야 합니다.

  9. JavaScript 동전 교환 문제: 목표 금액을 만들기 위한 최소 동전 개수 구하기 (DP 풀이)

    문제 소개이번 글에서는 JavaScript로 동전 교환(Coin Change) 문제를 해결하는 방법을 알아보겠습니다.함수의 첫 번째 인자는 배열 arr입니다. 이 배열은 우리가 사용할 수 있는 동전의 종류(액면가)를 나타냅니다. 예를 들어 [1, 2, 5]라면 1원, 2원, 5원짜리 동전을 각각 무제한으로 사용할 수 있다는 의미입니다.두 번째 인자는 숫자 amount로, 만들고자 하는 목표 금액을 뜻합니다. 함수는 이 금액을 정확히 맞추기 위해 필요한 최소 동전 개수를 반환해야 합니다.만약 어떤 조합으로도 해당 금액을 만들 수 없다

  10. JavaScript로 두 배열에서 만들 수 있는 최대 숫자 찾기

    문제 정의이번 포스트에서는 JavaScript 함수를 작성하여 두 배열에서 만들 수 있는 최대 숫자를 구하는 방법을 알아보겠습니다.함수는 한 자리 숫자(0~9)들로 이루어진 두 개의 배열 arr1과 arr2를 첫 번째와 두 번째 인수로 받습니다. 세 번째 인수는 숫자입니다.num (num <= arr1.length + arr2.length)우리가 작성할 함수는 길이가 num인 새로운 한 자리 숫자 배열을 반환해야 하며, 이 배열 자체도 하나의 숫자를 나타냅니다. 그리고 그 숫자는 두 배열의 원소들을 조합하여 만들 수 있는 최댓

  11. JavaScript로 전구 켜고 끄기: n번의 라운드 후 켜진 전구 개수 구하기

    문제 소개 다음과 같은 상황을 생각해 봅시다. 처음에는 모두 꺼져 있는 전구가 n개 있습니다. 첫 번째 라운드에서는 모든 전구를 켭니다. 두 번째 라운드에서는 두 번째마다 해당하는 전구를 끕니다. 세 번째 라운드에서는 세 번째마다 해당하는 전구의 상태를 반전시킵니다(꺼져 있으면 켜고, 켜져 있으면 끕니다). 일반화하면, i번째 라운드에서는 i번째마다 해당하는 전구의 상태를 반전시키며, 마지막 n번째 라운드에서는 마지막 전구 하나만 반전시킵니다. 즉, 숫자 n을 유일한 입력으로 받아 n번의 라운드가 모두 끝난 후 켜져 있는 전구가

  12. JavaScript로 공통 문자가 없는 두 단어의 최대 길이 곱 구하기

    문제 설명소문자 알파벳으로만 이루어진 문자열 배열을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열에서 서로 공통된 문자를 하나도 포함하지 않는 두 문자열을 찾아야 하며, 그중 두 문자열 길이의 곱이 최대가 되는 조합을 선택해야 합니다. 그런 다음 해당 길이 곱을 반환하고, 만약 조건을 만족하는 두 문자열이 존재하지 않는다면 0을 반환하면 됩니다.예시함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.const arr = [karl, n, the, car, mint, alpha];이 경

  13. JavaScript로 중복 문자를 한 번만 남기고 사전순 최소 문자열 만들기

    문제 소개하나의 문자열 str을 유일한 인자로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 입력 문자열을 기반으로 새로운 문자열을 만들어야 하며, 새 문자열에는 각 문자가 정확히 한 번씩만 나타나야 합니다. 또한 어떤 위치의 문자를 남길지 선택할 때는, 그 선택이 결과 문자열을 사전순(lexicographically)으로 가장 작게 만들도록 해야 합니다.예를 들어 함수의 입력이 다음과 같다면 −const str = cbacdcbc;출력은 다음과 같아야 합니다 −const output = acdb;

  14. JavaScript로 배열에서 자신보다 뒤에 있는 더 작은 수의 개수 세기

    문제 정의숫자로 이루어진 배열을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 입력 배열을 기반으로 새로운 배열을 생성해 반환해야 합니다. 이때 새 배열의 각 요소는, 원본 배열에서 해당 위치의 요소보다 오른쪽(뒤)에 있으면서 값이 더 작은 요소들의 개수여야 합니다.예를 들어, 함수에 다음과 같은 배열이 입력된다고 가정해 보겠습니다.const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];그렇다면 출력은 다음과 같아야 합니다.const output = [2, 4, 0, 1, 2,

  15. JavaScript로 슈퍼 얼리 넘버(Super Ugly Number) 구현하기

    슈퍼 얼리 넘버(Super Ugly Number)란?슈퍼 얼리 넘버는 모든 소인수가 주어진 소수 배열(크기 k)에 속해 있는 양의 정수를 의미합니다. 예를 들어, 소수 배열이 primes = [2, 7, 13, 19]로 주어졌을 때 처음 12개의 슈퍼 얼리 넘버는 다음과 같습니다.[1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32]문제 이해하기숫자 num과 소수 배열 arr를 인자로 받아, num번째 슈퍼 얼리 넘버를 찾아 반환하는 JavaScript 함수를 작성하는 것이 목표입니다.접근 방법이 문제는 다이

  16. JavaScript로 합이 가장 작은 경로 찾기

    문제숫자로 이루어진 2차원 배열을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 각 행에서 정확히 하나의 요소를 선택해 경로를 구성하되, 인접한 두 행에서 선택한 요소는 서로 같은 열에 위치해서는 안 됩니다. 그런 다음 가능한 모든 경로 중에서 합이 가장 작은 경로의 합을 반환해야 합니다.예를 들어, 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.const arr = [ [4, 7, 1], [2, 8, 3], [5, 6, 9]]이때 기대하는 출력 결과는 다음과 같습니다

  17. JavaScript로 다른 구간에 포함되는 간격 제거하기

    문제 상황2차원 배열 arr를 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.입력 배열의 각 하위 배열은 정확히 두 개의 숫자로 구성되어 있으며, 하나의 시간 구간(간격)을 나타냅니다.함수는 다른 구간에 완전히 포함되는 모든 구간을 제거한 뒤, 배열에 남아 있는 구간의 개수를 반환해야 합니다. 여기서 구간 [a, b)가 구간 [c, d)에 포함된다는 것은 c <= a 이고 b <= d일 때, 그리고 그 경우에만 성립합니다.예를 들어 함수의 입력이 다음과 같다면,const arr = [ &nbs

  18. JavaScript 배열에서 25%(1/4) 이상 등장하는 요소 찾기

    문제오름차순으로 정렬된 정수 배열 arr을 입력받는 JavaScript 함수를 작성해야 합니다.이 배열에는 전체 요소 수의 25%(1/4)보다 많이 등장하는 정수가 정확히 하나 존재하며, 함수는 바로 그 숫자를 반환해야 합니다.예를 들어, 함수의 입력이 다음과 같다면 −const arr = [3, 5, 5, 7, 7, 7, 7, 8, 9];그렇다면 출력은 다음과 같아야 합니다 −const output = 7;접근 방법배열이 이미 정렬되어 있으므로 처음부터 끝까지 모든 요소를 세는 선형 탐색 대신 이진 탐색(Bi

  19. JavaScript로 정수를 나누어 최대 곱 구하기

    문제정수 num을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 주어진 정수를 최소 두 개 이상의 조각으로 나누어야 하며, 각 조각의 합은 num과 같고 곱은 가능한 한 최대가 되어야 합니다. 마지막으로 함수는 이렇게 구한 최대 곱을 반환해야 합니다.예를 들어, 함수의 입력이 다음과 같다면 −const num = 10;출력은 다음과 같아야 합니다 −const output = 36;출력 설명10은 3 + 3 + 4로 나눌 수 있고, 이 세 수를 곱하면 3 × 3 × 4 =

  20. JavaScript에서 숫자가 유효한 4의 거듭제곱인지 확인하는 방법

    문제 설명 하나의 정수 num을 유일한 인수로 받아, 해당 숫자가 유효한 4의 거듭제곱인지 판별하는 JavaScript 함수를 작성해야 합니다. 숫자가 4의 거듭제곱이라면 true를, 그렇지 않다면 false를 반환하면 됩니다. 예를 들어, 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다. const num1 = 2356; const num2 = 16; 그렇다면 기대되는 출력은 다음과 같습니다. const output1 = false; // 2356은 4의 거듭제곱이 아님 const output2 = true; // 16

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:25/297  20-컴퓨터/Page Goto:1 19 20 21 22 23 24 25 26 27 28 29 30 31