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

JavaScript

  1. 자바스크립트로 '부드러운(smooth)' 문장 판별하는 방법

    자바스크립트에서 주어진 문장이 부드러운(smooth) 문장인지 판별하는 함수를 작성해야 하는 경우가 있습니다. 그렇다면 부드러운 문장이란 무엇일까요? 부드러운 문장의 정의 부드러운 문장이란 문장 내 각 단어의 첫 글자가 바로 앞 단어의 마지막 글자와 동일한 문장을 의미합니다. 예를 들어 this stringt tries sto obe esmooth라는 문장은 모든 단어가 이전 단어의 끝 글자로 시작하므로 부드러운 문장입니다. 반면 this string is not smooth는 이 조건을 만족하지 못하므로 부드러운 문장이 아닙니다.

  2. JavaScript로 배열 요소를 재배열해 연속된 숫자 시퀀스를 만들 수 있는지 확인하는 방법

    숫자 배열을 입력받아, 배열의 요소들을 재배열했을 때 연속된 숫자 시퀀스를 만들 수 있는지 판별하는 JavaScript 함수를 작성해 보겠습니다.예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.const arr = [3, 1, 4, 2, 5];이 배열의 요소들은 1부터 5까지 모든 숫자를 포함하고 있으므로, 재배열하면 [1, 2, 3, 4, 5]라는 연속된 시퀀스가 됩니다. 따라서 출력 결과는 true여야 합니다.해결 접근 방식이 문제는 다음과 같은 단계로 해결할 수 있습니다.1. 빈 배열 처리배열이 비어 있다면 연속된 시퀀스

  3. JavaScript로 숫자의 자릿수 합 반복 횟수 구하기 – 가산 지속성(Additive Persistence) 완벽 정리

    이번 글에서는 양의 정수를 하나 입력받아 해당 숫자의 가산 지속성(additive persistence)을 반환하는 JavaScript 함수를 작성해 보겠습니다.가산 지속성(Additive Persistence)이란?어떤 정수 n의 가산 지속성이란, 그 숫자를 각 자릿수의 합으로 계속해서 대체했을 때 숫자가 한 자리 정수가 될 때까지 반복해야 하는 횟수를 의미합니다.예를 들어, 주어진 숫자가 다음과 같다고 가정해 봅시다.1679583그렇다면 자릿수의 합은 아래와 같이 단계별로 계산됩니다.1 + 6 + 7 + 9 + 5 + 8 + 3

  4. JavaScript로 16진수(Hex) 코드 유효성 검사하기

    문자열이 유효한 16진수(hex) 코드로 인정받으려면, 숫자 0~9와 영문자 a~f 외에 다른 어떤 문자도 포함되어서는 안 됩니다.예시3423ad → 유효한 16진수 코드4234es → 유효하지 않은 16진수 코드이번 글에서는 문자열을 입력받아 해당 문자열이 유효한 16진수 코드인지 판별하는 자바스크립트 함수를 작성해 보겠습니다.구현 방법가장 직관적인 접근 방식은 허용 가능한 문자 목록(legend)을 미리 정의해 두고, 문자열의 각 문자가 이 목록에 포함되어 있는지 하나씩 확인하는 것입니다. 목록에 없는 문자가 하나라도 발견되면

  5. JavaScript로 오른쪽의 모든 요소보다 큰 배열 요소만 추출하기

    숫자 배열을 입력받아, 자신보다 오른쪽에 있는 모든 요소보다 큰 값들만 모은 새로운 하위 배열을 반환하는 JavaScript 함수를 작성해 보겠습니다.예를 들어 [12, 45, 6, 4, 23, 23, 21, 1]이라는 배열이 있다면, 각 요소 기준으로 오른쪽의 모든 값과 비교했을 때 더 큰 요소들만 결과에 포함됩니다.구현 방법이 문제는 배열의 오른쪽 끝에서부터 왼쪽으로 순회하면서 지금까지 등장한 최댓값을 추적하면 효율적으로 해결할 수 있습니다. JavaScript에서는 reduceRight() 메서드가 이러한 역방향 순회에 딱 맞

  6. JavaScript로 문자열에서 처음 반복되는 문자의 인덱스 찾는 방법

    이번 글에서는 문자열을 입력받아 두 번 이상 등장하는 첫 번째 문자의 인덱스를 반환하는 JavaScript 함수를 작성해 보겠습니다. 만약 반복되는 문자가 존재하지 않는다면 -1을 반환하도록 구현합니다.문제 정의예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.const str = Hello world, how are you;이 문자열에서 가장 먼저 반복해서 나타나는 문자의 인덱스를 찾아야 합니다.해결 방법가장 효율적인 접근 방식은 Map 객체를 활용하는 것입니다. 문자열을 왼쪽부터 오른쪽으로 한 글자씩 순회하면서, 각 문자

  7. JavaScript로 문자열을 스네이크 케이스(snake case)로 변환하는 방법

    문자열을 입력받아 스네이크 케이스(snake case)로 변환하는 JavaScript 함수를 작성해야 합니다.스네이크 케이스란?스네이크 케이스는 문자열에서 단어 사이의 공백을 언더스코어(_)로 대체하고, 모든 글자를 소문자로 변환하여 작성하는 표기 방식입니다. 예를 들어 This is a simple sentence라는 문장은 스네이크 케이스로 변환하면 this_is_a_simple_sentence가 됩니다. 이 표기법은 Python 코드 작성이나 데이터베이스 컬럼명 정의 등 개발 환경에서 매우 자주 사용됩니다.구현 예제이를 구현한

  8. JavaScript로 문자열의 각 문자와 가장 가까운 모음 사이의 거리 배열 구하기

    이번 글에서는 최소 하나 이상의 모음을 포함하는 문자열을 입력받아, 문자열의 각 문자에 대해 가장 가까운 모음까지의 거리를 숫자로 매핑한 배열을 반환하는 JavaScript 함수를 작성해 보겠습니다.문제 이해하기예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.const str = vatghvf;이 경우 첫 번째 문자 v는 모음 a(인덱스 1)와 거리가 1이고, 두 번째 문자 a는 자체가 모음이므로 거리가 0입니다. 나머지 문자들은 왼쪽의 모음 a에서 점점 멀어지므로 거리가 1씩 증가합니다.출력 결과따라서 기대되는 출력은 다

  9. JavaScript 재귀 함수로 숫자의 가장 큰 자릿수 구하기

    숫자를 인자로 받아 해당 숫자에서 가장 큰 자릿수를 반환하는 JavaScript 재귀 함수를 작성해야 합니다.예를 들어, 입력된 숫자가 45654356이라면 각 자릿수는 4, 5, 6, 5, 4, 3, 5, 6이며, 이 중 가장 큰 값인 6을 반환해야 합니다.구현 방법이 문제는 재귀 호출을 활용하면 간결하게 해결할 수 있습니다. 핵심 로직은 다음과 같습니다.나머지 연산자(%)를 사용해 숫자의 마지막 자릿수를 추출합니다.Math.max()로 현재까지의 최댓값과 비교합니다.Math.floor(num / 10)으로 마지막 자릿수를 제거한

  10. JavaScript에서 2차원 배열의 열별 합계 구하기

    배열 안에 여러 개의 배열이 중첩된 형태(2차원 배열)가 주어졌을 때, 이 배열을 입력받아 각 인덱스 위치에 해당하는 요소들의 합계를 담은 새로운 배열을 반환하는 함수를 작성해야 하는 경우가 있습니다.예를 들어, 원본 배열이 다음과 같다면 −[ [43, 2, 21], [1, 2, 4, 54], [5, 84, 2], [11, 5, 3, 1] ]출력 결과각 열(인덱스)별 요소의 합계는 다음과 같이 계산됩니다. 첫 번째 열: 43 + 1 + 5 + 11 = 60 두 번째 열: 2 + 2 + 84 +

  11. JavaScript로 숫자 배열의 절댓값 합계 구하는 방법

    문제 소개양수와 음수가 섞여 있는 배열이 주어졌을 때, 모든 요소의 절댓값을 합산한 결과를 반환하는 JavaScript 함수를 작성해야 합니다. 단, 이 문제는 Math.abs() 같은 내장 라이브러리 함수의 도움 없이 직접 로직을 구현해야 한다는 조건이 있습니다.예를 들어 다음과 같은 배열이 있다고 가정해 보겠습니다.const arr = [1, -5, -34, -5, 2, 5, 6];기대 출력각 요소의 절댓값은 1, 5, 34, 5, 2, 5, 6이며, 이를 모두 더한 최종 결과는 다음과 같습니다.58구현 아이디어핵심 원리는 매우

  12. JavaScript로 문자열의 각 알파벳을 다음 문자로 바꾸는 방법

    이번 글에서는 문자열을 입력받아 영어 알파벳으로 구성된 모든 문자를 바로 다음 알파벳으로 바꾸는 JavaScript 함수를 작성해 보겠습니다. 예를 들어 다음과 같은 문자열이 있다고 가정해 봅시다. const str = how are you; 출력 결과 함수 실행 후 기대되는 출력은 다음과 같습니다. const output = ipx bsf zpv; 즉, 각 알파벳이 한 칸씩 뒤로 이동합니다(h → i, o → p, w → x). 공백처럼 알파벳이 아닌 문자는 원래 그대로 유지되며, z나 Z처럼 알파벳의 마지막 문자는 다시 a 또는

  13. JavaScript에서 문자열의 각 글자를 n번 반복하는 방법

    문제 소개 JavaScript에서 문자열과 숫자 n을 입력받아, 원본 문자열에 포함된 모든 글자를 각각 n번씩 반복한 새로운 문자열을 반환하는 함수를 작성해야 합니다. 예를 들어, 입력 문자열이 다음과 같다고 가정해 보겠습니다. const str = how are you 여기서 n의 값이 2라면, 출력 결과 기대하는 출력은 다음과 같습니다. const output = hhooww aarree yyoouu 공백을 포함한 모든 문자가 각각 두 번씩 반복된 것을 확인할 수 있습니다. 해결 방법: String.prototype.repeat

  14. JavaScript로 문자열에서 누락된 알파벳 찾기

    문제 상황길이가 m인 문자열에 영어 알파벳의 처음 m개 글자가 들어 있다고 가정해 봅시다. 그런데 어떤 이유에서인지 한 글자가 사라져서 현재 문자열에는 m-1개의 글자만 남아 있습니다.우리는 이러한 문자열을 입력받아 빠진 글자를 찾아 반환하는 함수를 작성해야 합니다.해결 방법가장 간단하고 직관적인 접근 방식은 알파벳 a부터 차례대로 순회하면서 해당 글자가 문자열에 포함되어 있는지 확인하는 것입니다. 포함되어 있으면 다음 글자로 넘어가고, 포함되어 있지 않다면 그 글자가 바로 누락된 문자입니다.함수의 일관성을 높이기 위해 입력 문자열

  15. JavaScript 배열 정렬: 짝수 먼저, 홀수 나중에 오름차순으로 정렬하기

    이번 글에서는 숫자 배열을 입력받아 짝수는 모두 먼저 오름차순으로, 그다음 홀수도 오름차순으로 정렬하는 JavaScript 함수를 작성해 보겠습니다.문제 이해하기예를 들어, 다음과 같은 배열이 입력으로 주어졌다고 가정해 봅시다.const arr = [2, 5, 2, 6, 7, 1, 8, 9];기대 출력 결과위 배열을 조건에 맞게 정렬하면 아래와 같은 결과가 나와야 합니다.const output = [2, 2, 6, 8, 1, 5, 7, 9];즉, 짝수인 2, 2, 6, 8이 앞쪽에 오름차순으로 배치되고, 홀수인 1, 5, 7, 9가

  16. 자바스크립트(JavaScript)로 버킷 정렬(Bucket Sort) 구현하기

    버킷 정렬(Bucket Sort)은 크기가 n인 배열을 요소 값의 특정 범위를 담는 k개의 버킷으로 나누어 정렬하는 알고리즘입니다. 배열이 여러 개의 버킷으로 분배되면, 각 버킷은 입력 데이터의 크기와 특성에 맞게 선택한 정렬 알고리즘(여기서는 삽입 정렬)을 사용해 개별적으로 정렬됩니다. 마지막으로 모든 버킷의 요소를 순서대로 이어 붙이면 전체 배열이 정렬된 상태가 됩니다. 버킷 정렬 알고리즘 이 알고리즘의 동작 과정은 다음과 같이 요약할 수 있습니다. 1. 초기 bucketSort 함수 생성 2. i, min, max, 버킷 크기

  17. JavaScript에서 문자열의 중복 단어만 골라내는 방법

    문자열을 인자로 받아, 원래 문자열에서 두 번 이상 등장한 단어만 모아 새 문자열로 반환하는 JavaScript 함수를 작성해야 합니다. 즉, 한 번만 나타난 단어는 모두 제거하고 반복되는 단어만 남기는 것이 목표입니다. 예시 입력 문자열이 다음과 같다고 가정해 보겠습니다 − const str = this is a is this string that contains that some repeating words; 출력 이 경우 기대되는 출력은 다음과 같습니다 − const output = this is tha

  18. JavaScript로 이차방정식의 해(실근) 계산하기

    문제 정의 이번 글에서는 세 개의 숫자를 인자로 받아 이차방정식의 해(근)를 구하는 JavaScript 함수를 작성해 보겠습니다. 세 숫자는 순서대로 이차항의 계수(a), 일차항의 계수(b), 상수항(c)을 의미합니다. 함수는 방정식의 실근을 배열 형태로 반환하고, 만약 실근이 존재하지 않는다면 false를 반환해야 합니다. 수학적 배경 일반형이 ax² + bx + c = 0인 이차방정식은 근의 공식을 사용하여 해를 구할 수 있습니다. 먼저 판별식 D = b² − 4ac를 계산하며, 그 값에 따라 해의 성질이 결정됩니다. D ≥

  19. JavaScript 이진 검색(바이너리 서치)으로 쿼리 위치 찾기

    문제 개요정렬된 배열을 첫 번째 인수로, 검색하고자 하는 쿼리 값을 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 이진 검색(Binary Search) 알고리즘을 활용하여 해당 쿼리가 배열 안에 존재하는지 여부를 판별합니다.쿼리가 배열에 존재하면 그 요소의 인덱스를 반환하고, 존재하지 않으면 -1을 반환하도록 구현합니다.이진 검색은 정렬된 배열에서만 동작하는 알고리즘으로, 배열의 중간값과 쿼리를 비교한 뒤 탐색 범위를 절반씩 줄여 나가는 방식입니다. 따라서 선형 검색의 O(n)보다 훨씬 빠른 O(log

  20. JavaScript로 입력 숫자에 가장 가까운 2의 거듭제곱 구하기

    이번 글에서는 하나의 숫자를 입력받아, 그 숫자에 가장 가까운 2의 거듭제곱(2^n) 값을 반환하는 JavaScript 함수를 작성해 보겠습니다.예를 들어 입력값이 145라면, 출력 결과는 128이 되어야 합니다. 왜냐하면 128은 2^7로 표현할 수 있으며, 145와 가장 가까운 거리에 있는 2의 거듭제곱이기 때문입니다.동작 원리알고리즘의 핵심 로직은 다음과 같습니다.음수가 입력될 경우 절댓값으로 변환하여 양수만 처리합니다.base 값을 1부터 시작해 계속 2배씩 늘려가며 비교합니다.현재 base와 다음 base 사이에서 입력값이

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:74/297  20-컴퓨터/Page Goto:1 68 69 70 71 72 73 74 75 76 77 78 79 80