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

JavaScript

  1. JavaScript에서 여러 속성을 기준으로 객체 배열 정렬하는 방법

    문제 상황예를 들어 다음과 같은 객체 배열이 있다고 가정해 보겠습니다. 각 객체는 id, score, isCut, dnf 네 가지 속성을 가지고 있습니다.const arr = [ { id: 1, score: 1, isCut: false, dnf: false }, { id: 2, score: 2, isCut: false, dnf: false }, { id: 3, score: 3, isCut: false, dnf: false }, { id: 4, score: 4, isCut: false, dnf: false

  2. JavaScript에서 문자열의 알파벳 개수 계산하는 방법

    JavaScript에서 문자열을 입력받아 그 안에 포함된 알파벳(대문자 또는 소문자)의 개수를 세는 함수를 작성해 보겠습니다. 공백, 숫자, 특수문자 등은 제외하고 순수하게 영문자만 카운트하는 것이 핵심입니다.문제 이해하기예를 들어 입력 문자열이 다음과 같다면,const str = this is a string!;공백과 느낌표(!)를 제외한 알파벳은 총 13개이므로 출력 결과는 다음과 같아야 합니다.13구현 방법먼저 주어진 문자가 알파벳인지 판별하는 헬퍼 함수 isAlpha를 만들고, 문자열을 한 글자씩 순회하면서 알파벳인 경우에만

  3. JavaScript 배열에서 최빈값 구하기 – 빈도가 같으면 가장 먼저 등장한 값 반환

    문제 개요 리터럴 값(문자열, 숫자 등)으로 이루어진 배열을 인자로 받아 가장 많이 등장하는 값을 반환하는 자바스크립트 함수를 작성해 보겠습니다. 단, 여러 값의 등장 횟수가 서로 같을 경우에는 그중 배열에서 가장 먼저 등장한 값을 반환해야 합니다. 문제 예시 다음 배열을 살펴보겠습니다. const arr = [25, 50, a, a, b, c]; 여기서는 a가 두 번 등장해 빈도가 가장 높으므로 결과는 a가 되어야 합니다. const arr = [75, 100, a, b, b, a]; 이 경우 a와 b가 각각 두 번씩 등장하여

  4. JavaScript로 문자열 배열에서 부분 문자열 조합 모두 찾는 방법

    문제 정의문자열 배열을 인수로 받아, 배열 안에 존재하는 모든 부분 문자열(substring)과 슈퍼스트링(superstring) 조합을 찾아 해당 요소들을 배열로 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어 다음과 같은 배열이 주어졌다고 가정해 보겠습니다.const arr = [abc, abcd, abcde, xyz];이때 기대되는 출력 결과는 다음과 같습니다.const output = [abc, abcd, abcde];'xyz'는 다른 어떤 문자열과도 포함 관계가 없기 때문에 제외되고, 나머지 세

  5. JavaScript로 두 배열을 비교해 사전순으로 정렬된 배열 반환하기

    두 개의 배열, 예를 들어 arr1과 arr2를 매개변수로 받는 자바스크립트 함수를 작성해야 합니다. 이 함수의 역할은 arr1의 문자열 중에서 arr2의 문자열 안에 포함되어 있는(즉, 부분 문자열에 해당하는) 값들을 추려낸 뒤, 그 결과를 사전순(lexicographical order)으로 정렬하여 반환하는 것입니다. 문제 접근 방법 구현 흐름은 다음과 같습니다. 먼저 arr1의 각 문자열을 순회하면서, 해당 문자열이 arr2의 문자열 중 하나라도 포함하고 있는지 확인합니다. 자바스크립트의 String.prototype.inc

  6. JavaScript로 문자열 속 모음 개수 세는 방법

    이번 글에서는 문자열을 인수로 받아 그 안에 포함된 모음(vowel)의 개수를 세는 자바스크립트 함수를 작성해 보겠습니다.단순히 전체 모음 개수만 반환하는 것이 아니라, 각 모음(a, e, i, o, u)별로 몇 번 등장했는지를 객체(object) 형태로 매핑하여 반환하는 것이 목표입니다.구현 아이디어구현 절차는 다음과 같습니다.split() 메서드를 사용해 문자열을 개별 문자 배열로 분리합니다.모음 문자열 aeiou를 기준으로 각 문자가 모음인지 판별합니다.toLowerCase()로 소문자로 변환하여 대소문자를 구분 없이 처리합니

  7. JavaScript에서 배열 내 목표 값과 가장 가까운 요소의 인덱스 찾는 방법

    이번 글에서는 숫자 배열을 첫 번째 인수로, 하나의 숫자를 두 번째 인수로 받는 JavaScript 함수를 작성해 보겠습니다.이 함수의 역할은 배열에 포함된 숫자들 중에서 두 번째 인수로 전달된 값(목표 값)과 가장 가까운 숫자를 찾아, 해당 숫자의 인덱스를 반환하는 것입니다.동작 원리가장 가까운 값을 찾는 핵심 아이디어는 다음과 같습니다.배열을 처음부터 끝까지 순회하면서 각 요소와 목표 값 사이의 절댓값 차이를 계산합니다.현재까지 발견한 최소 차이보다 더 작은 차이를 가진 요소가 나타나면, 그 요소의 인덱스를 저장합니다.순회가 끝

  8. JavaScript에서 두 배열의 차이 구하기: 첫 번째 배열에만 있는 요소 찾는 방법

    JavaScript 프로그래밍을 하다 보면 두 개의 배열을 비교하여 특정 배열에만 존재하는 요소를 추출해야 하는 경우가 자주 발생합니다. 이번 글에서는 두 개의 배열을 인자로 받아, 첫 번째 배열에는 있지만 두 번째 배열에는 없는 요소들만 모아 새로운 배열로 반환하는 함수를 작성하는 방법을 알아보겠습니다.두 배열에는 서로 동일한 값이 포함되어 있을 수도 있습니다. 따라서 함수의 핵심 로직은 첫 번째 배열의 각 요소를 순회하면서 해당 요소가 두 번째 배열에 존재하는지 확인하고, 존재하지 않는 요소만 결과 배열에 담는 것입니다.구현 코

  9. 자바스크립트로 문자열 배열에서 가장 긴 고유 부분 수열 찾기

    문제 소개문자열 배열을 입력받아, 배열에 포함된 문자열들 사이에서 가장 긴 고유 부분 수열(Longest Uncommon Subsequence)을 찾는 자바스크립트 함수를 작성해 보겠습니다.여기서 말하는 고유 부분 수열이란 배열 내 특정 문자열의 부분 수열이면서, 동시에 나머지 다른 어떤 문자열의 부분 수열에도 해당하지 않는 수열을 의미합니다. 참고로 부분 수열(subsequence)은 원본 문자열에서 문자의 순서를 유지한 채 일부 문자를 삭제하여 만들어진 수열을 뜻합니다.함수는 최종적으로 이 가장 긴 고유 부분 수열의 길이를 반환

  10. JavaScript에서 괄호 문자열 유효성 검사하기: 스택으로 해결하는 방법

    문제 소개여섯 가지 괄호 문자 (, ), {, }, [, ]만으로 구성된 문자열을 입력받아, 해당 문자열이 유효(valid)한지 판별하는 JavaScript 함수를 작성해 보겠습니다.유효한 문자열의 조건열린 괄호는 반드시 같은 종류의 닫힌 괄호로 닫혀야 합니다.열린 괄호는 올바른 순서대로 닫혀야 합니다.예시() → 유효한 괄호()[]{} → 유효한 괄호(] → 유효하지 않은 괄호 (괄호 종류가 일치하지 않음)접근 방법: 스택(Stack) 활용이 문제는 스택 자료구조를 활용하면 효율적으로 해결할 수 있습니다. 핵심 아이디어는 다음과

  11. 자바스크립트에서 재귀(Recursion)를 활용해 배열의 곱 구하기

    문제 소개 정수로 이루어진 배열을 인자로 받아, 배열의 모든 요소를 곱한 값을 반환하는 자바스크립트 함수를 작성해 보겠습니다. 이때 지켜야 할 핵심 조건은 두 가지입니다. 반복문이 아닌 재귀(recursion) 방식으로 문제를 해결할 것 배열 내 모든 요소의 곱(product)을 계산하여 반환할 것 입력 및 출력 예시 입력 배열이 다음과 같다고 가정해 보겠습니다. const arr = [1, 3, 6, .2, 2, 5]; 모든 요소를 곱하면 1 × 3 × 6 × 0.2 × 2 × 5 = 36이므로, 기대되는 출력값은 다음과 같

  12. JavaScript에서 문자열에 해당하는 전화 키패드 숫자 찾는 방법

    전화 키패드와 알파벳 매핑구형 버튼식 휴대폰에서는 숫자 키마다 알파벳이 다음과 같이 배치되어 있었습니다.const mapping = { 1: [], 2: [a, b, c], 3: [d, e, f], 4: [g, h, i], 5: [j, k, l], 6: [m, n, o], 7: [p, q, r, s], 8: [t, u, v], 9: [w, x, y, z] };흔히 접하는 숫자 조합으로 만들 수 있는 모든 단어 구하기 문제와 반대로, 이번에는 알파벳으로 이루어진 문자열을

  13. JavaScript 문자열 아나그램(Anagram)이란? 개념과 판별 방법

    아나그램(Anagram)이란?두 문자열이 서로 아나그램 관계에 있다는 것은, 첫 번째 문자열의 글자들을 재배열하거나 순서를 섞어 두 번째 문자열과 완전히 동일한 문자열을 만들 수 있다는 의미입니다.예를 들어 다음 두 단어를 살펴보겠습니다.something과 emosghtin은 같은 글자들로 이루어져 있으므로 서로 아나그램입니다.이번 글에서는 두 개의 문자열 str1과 str2를 입력받아, 두 문자열이 서로 아나그램인 경우 true, 그렇지 않은 경우 false를 반환하는 JavaScript 함수를 작성해 보겠습니다.접근 방식가장 효

  14. JavaScript로 인접하지 않은 요소의 최대 합 부분집합 구하기

    문제 소개정수로 이루어진 배열을 입력받아, 서로 인접하지 않은(non-adjacent) 요소들로 구성된 부분집합 중에서 합이 가장 큰 것을 찾는 JavaScript 함수를 작성해야 합니다.마지막으로, 함수는 찾아낸 부분집합의 합을 계산하여 반환해야 합니다.예시입력 배열이 다음과 같다고 가정해 보겠습니다.const arr = [3, 5, 7, 8, 10];이때 기대하는 출력값은 20입니다. 인접하지 않은 요소들만으로 만들 수 있는 최대 합 부분집합은 3, 7, 10이며, 그 합이 3 + 7 + 10 = 20이기 때문입니다.구현 코드이

  15. JavaScript로 문자열이 배열 요소들의 조합인지 확인하는 방법

    첫 번째 인수로 문자열 배열을, 두 번째 인수로 하나의 문자열을 받는 JavaScript 함수를 작성해야 합니다.이 함수는 두 번째 인수로 전달된 문자열이 배열에 포함된 문자열들을 어떤 순서로든 조합하여 만들어질 수 있는지 판별해야 합니다.예를 들어, 입력 배열이 다음과 같다고 가정해 보겠습니다.const arr = [for,car,keys,forth];그리고 검사할 문자열은 다음과 같습니다.const str = forthcarkeys;이 경우 출력값은 true가 되어야 합니다. 해당 문자열은 배열의 3번, 1번, 2번 인덱스에 있

  16. 자바스크립트에서 n개의 문자 배열로 반복 문자 없는 모든 조합 문자열 만들기

    문제 이해하기각각 한 글자짜리 문자들을 담고 있는 n개의 별개 배열이 있다고 가정해 봅시다. 우리는 이 모든 배열을 인수로 받아 처리하는 자바스크립트 함수를 작성해야 합니다.이 함수는 다음 두 가지 조건을 만족하는 모든 가능한 문자열 조합을 생성해야 합니다.각 배열에서 정확히 하나의 문자를 가져와야 합니다.생성된 문자열에는 반복되는 문자가 없어야 합니다. (배열끼리 서로 같은 요소를 포함할 수 있기 때문입니다.)이번 예제에서는 편의상 세 개의 배열을 사용하지만, 작성하는 함수는 배열의 개수와 관계없이 유연하게 동작하도록 만들 것입니

  17. 바닐라 자바스크립트로 힙 정렬(Heap Sort) 구현하기

    힙 정렬(Heap Sort)은 대표적인 비교 기반 정렬 알고리즘입니다. 개선된 선택 정렬(selection sort)이라고 생각할 수 있는데, 선택 정렬과 마찬가지로 입력 배열을 정렬된 영역과 정렬되지 않은 영역으로 나누고, 정렬되지 않은 영역에서 목표 값(최댓값 또는 최솟값)을 추출해 정렬된 영역으로 옮기는 작업을 반복하며 정렬되지 않은 영역을 점차 줄여 나가는 방식으로 동작합니다.힙 정렬의 동작 원리힙 정렬은 이진 힙(binary heap) 자료구조를 활용합니다. 배열을 완전 이진 트리 형태로 해석한 뒤, 부모 노드가 항상 자식

  18. 자바스크립트 스택으로 구현하는 후위 표기법(RPN) 계산기

    스택으로 구현하는 후위 표기법(RPN) 계산기란? 자바스크립트의 스택(Stack) 자료구조를 활용해 RPN(Reverse Polish Notation, 후위 표기법) 방식으로 입력된 수식을 계산하는 계산기를 만들어 보겠습니다. 후위 표기법은 연산자가 피연산자 뒤에 오는 표기 방식입니다. 괄호 없이도 연산 순서가 명확하게 결정되기 때문에 컴파일러나 전자계산기의 내부 로직 등 다양한 분야에서 활용되며, 스택을 함께 사용하면 수식을 단 한 번의 순회만으로 평가할 수 있다는 장점이 있습니다. 입력 데이터 다음과 같이 숫자(피연산자)와 연

  19. JavaScript 재귀 함수로 스택 요소 제자리 정렬하기

    정수 배열을 입력받아 재귀(recursion)와 배열의 push, pop 메서드만을 활용해 스택을 제자리(in-place)에서 오름차순으로 정렬하는 JavaScript 함수를 작성해 보겠습니다.접근 방식이 문제는 두 개의 재귀 함수를 조합하여 해결할 수 있습니다.1. sortStack 함수: 스택의 최상단 요소를 pop으로 꺼낸 뒤, 남은 스택에 대해 자기 자신을 재귀 호출합니다. 재귀가 모두 끝나면 꺼내둔 요소를 sortedInsert를 통해 올바른 위치에 다시 삽입합니다.2. sortedInsert 함수: 스택이 비어 있거나 삽

  20. 자바스크립트에서 숫자를 알파벳 문자로 변환하는 방법

    이 글에서는 0부터 25 사이(양 끝값 포함)의 숫자를 입력받아 해당 순서의 알파벳 문자를 반환하는 자바스크립트 함수를 작성하는 방법을 소개합니다. 문제 정의 함수는 0~25 범위의 숫자 하나를 인수로 받으며, 각 숫자는 다음과 같이 알파벳에 대응됩니다. 0 → A 1 → B 15 → P 25 → Z 구현 예시 핵심 아이디어는 대문자 A의 아스키(ASCII) 코드 값을 기준점으로 삼고, 여기에 입력받은 숫자를 더한 후 String.fromCharCode() 메서드를 사용해 다시 문자로 변환하는 것입니다. const num = 1

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