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

JavaScript

  1. JavaScript에서 두 번·한 번만 나타나는 숫자 두 개 찾는 방법

    문제 정의어떤 배열에는 모든 숫자가 세 번씩 나타나지만, 딱 하나의 숫자만 두 번 나타나고 또 다른 하나의 숫자는 한 번만 나타난다고 가정해 봅시다. 우리가 작성해야 할 JavaScript 함수는 이 배열을 입력받아 두 번 나타나는 숫자와 한 번 나타나는 숫자를 찾아 반환하는 것입니다.예를 들어 [1, 1, 1, 2, 2, 3]이라는 배열이 주어지면, 숫자 1은 세 번, 숫자 2는 두 번, 숫자 3은 한 번 나타나므로 함수는 [3, 2]를 반환해야 합니다.예제 코드다음은 위 문제를 해결하는 코드입니다 −const arr = [1,

  2. JavaScript로 특정 간격을 가진 두 소수 쌍 찾기 – 단계별 구현 가이드

    알고리즘 문제를 풀다 보면 소수(Prime Number)와 관련된 다양한 요구사항을 만나게 됩니다. 이번 글에서는 JavaScript를 활용해 주어진 범위 안에서 서로 일정한 간격(gap)만큼 떨어져 있는 두 소수 쌍을 찾는 방법을 단계별로 살펴보겠습니다. 문제 정의 첫 번째 인수로 숫자 gap을, 두 번째 인수로 두 개의 숫자로 구성된 범위 배열을 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 지정된 범위 내에 존재하면서 절댓값 기준으로 그 차이가 gap과 같은 소수 쌍을 배열 형태로 반환해야 합니다. 예시 조건

  3. JavaScript로 문자열에서 알파벳 순서대로 n개의 문자 제거하기

    문제 설명소문자 알파벳으로 구성된 문자열과 숫자 num을 입력받아, 알파벳 순서대로 num개의 문자를 제거하는 JavaScript 함수를 작성해야 합니다.여기서 알파벳 순서대로란, 먼저 문자열에서 a를 모두 찾아 제거한 뒤, 그다음 b, c 등을 차례로 제거하여 지정된 개수에 도달할 때까지 반복한다는 의미입니다.동작 예시예를 들어 문자열이 abascus이고 num이 4라면 다음과 같은 순서로 진행됩니다.a 제거 → bascus (남은 제거 횟수: 3)a 제거 → bscus (남은 제거 횟수: 2)b 제거 → scus (남은 제거 횟

  4. JavaScript로 텍스트 문자열에서 가장 자주 등장하는 상위 3개 단어 찾기

    문제 정의 영어 알파벳으로 이루어진 문자열을 입력받아, 해당 문자열 안에서 가장 빈도수가 높은 단어 세 개를 반환하는 JavaScript 함수를 작성해야 합니다. 예를 들어, 긴 영어 문단이 주어졌을 때 함수는 문장 부호와 대소문자를 적절히 처리한 뒤, 가장 많이 등장한 순서대로 상위 3개의 단어를 배열 형태로 돌려주어야 합니다. 예제 코드 다음은 실제 동작하는 전체 코드입니다. const str = Python was developed by Guido van Rossum in the late eighties and early n

  5. JavaScript로 수열 seq(n, p)의 합 구하기

    문제 정의다음과 같은 형태의 수열 합이 주어진다고 가정해 봅시다.$$seq(n,\:p)=\displaystyle\sum\limits_{k=0} \square(-1)^{k}\times\:p\:\times 4^{n-k}\:\times(\frac{2n-k}{k})$$우리가 해야 할 일은 두 개의 숫자 n과 p를 인자로 받아 위 수열의 값인 seq(n, p)를 계산하여 반환하는 JavaScript 함수를 작성하는 것입니다.접근 방법이 문제는 단순한 반복문만으로 충분히 해결할 수 있습니다. k를 0부터 n까지 하나씩 증가시키면서 각 항(te

  6. JavaScript로 각 문자를 알파벳 인접 문자로 바꿔 회문을 만들 수 있는지 확인하기

    문제 정의 문자열 하나를 입력받는 JavaScript 함수를 작성해야 합니다. 이 함수는 문자열의 각 문자에 대해 다음과 같은 규칙으로 연산을 수행할 수 있습니다. 모든 문자는 반드시 알파벳상 바로 앞 또는 바로 뒤에 있는 문자로 변경해야 합니다. 단, "a"는 "b"로만, "z"는 "y"로만 변경할 수 있습니다. (알파벳 범위를 벗어날 수 없기 때문입니다.) 함수는 이러한 변경을 적용한 결과 중 적어도 하나라도 회문(palindrome)이 될 수 있다면

  7. JavaScript에서 이름·성·선택적 중간 이름으로 전체 이름 구성하기

    문제 상황세 개의 문자열을 인자로 받아 전체 이름을 반환하는 JavaScript 함수를 작성해야 합니다. 첫 번째 문자열은 이름(first name), 두 번째 문자열은 성(last name)을 나타내며, 세 번째 문자열은 생략 가능한 중간 이름(middle name)입니다.함수는 주어진 입력값을 조합해 완성된 전체 이름을 반환해야 하며, 중간 이름이 전달되지 않더라도 불필요한 공백 없이 자연스러운 결과가 나오도록 처리해야 합니다.접근 방법이 문제는 배열과 filter() 메서드를 활용하면 깔끔하게 해결할 수 있습니다. 이름, 중간

  8. JavaScript에서 너비와 화면 비율(가로:세로)을 기반으로 높이 계산하기

    문제화면의 너비를 첫 번째 인수로, 화면 비율(가로:세로)을 두 번째 인수로 받아 처리하는 JavaScript 함수를 작성해야 합니다. 함수는 이 두 입력값을 바탕으로 화면의 높이를 계산하여 반환해야 합니다.예시다음은 해당 코드입니다 −const ratio = '18:11';const width = 2417;const findHeight = (ratio = '', width = 1) => {    const [w, h] = ratio  

  9. JavaScript로 배열의 평균을 구해 가장 가까운 정수로 반올림하는 방법

    문제 개요숫자로 이루어진 배열을 입력받아, 배열 요소 전체의 평균을 계산한 뒤 그 값을 가장 가까운 정수로 반올림하여 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어 [45, 23, 67, 68, 12, 56, 99]라는 배열이 주어졌다면, 합계는 370이고 요소 개수는 7이므로 평균은 약 52.86입니다. 이를 반올림하면 최종 결과는 53이 됩니다.구현 코드다음은 reduce() 메서드와 Math.round()를 활용한 해결 코드입니다.const arr = [45, 23, 67, 68, 12, 56, 99]; con

  10. JavaScript에서 숫자 배열을 문자 코드 객체로 매핑하는 방법

    문제 이해하기이번 글에서는 숫자 배열을 입력받아 각 숫자에 대응하는 객체를 생성하는 JavaScript 함수를 작성해 보겠습니다. 요구 사항은 다음과 같습니다.배열의 각 숫자마다 하나의 객체를 만들어야 하며, 객체의 키(key)는 문자열 형태의 숫자, 값(value)은 해당 숫자에 대응하는 문자가 됩니다. 최종적으로는 이렇게 만들어진 객체들을 담은 배열을 반환하면 됩니다.해결 방법 1: for 반복문 사용가장 기본적인 접근 방식은 전통적인 for 반복문을 활용하는 것입니다. 배열을 순회하면서 각 요소에 대해 새로운 객체를 생성하고,

  11. JavaScript 배열에서 숫자는 오름차순으로, 문자열은 알파벳순으로 정렬하는 방법

    문제 상황숫자와 문자열이 섞여 있는 하나의 배열을 입력받아, 숫자는 오름차순으로 먼저 정렬하고 그 뒤에 문자열은 알파벳순으로 정렬한 단일 배열을 반환하는 JavaScript 함수를 작성해야 합니다.여기서 중요한 조건은 정렬 과정에서 각 값의 원래 자료형(number, string)이 그대로 유지되어야 한다는 점입니다.해결 코드배열의 sort() 메서드에 커스텀 비교 함수를 전달하면 이 문제를 손쉽게 해결할 수 있습니다. 다음은 전체 코드입니다 −const arr = [5, 8, 'car', 'dad&

  12. JavaScript로 범위 내에서 특정 거리를 가진 k-소수 쌍 찾기

    k-소수(K-Prime Number)란?자연수가 정확히 k개의 소인수를 가질 때, 그 수를 k-소수(k-prime)라고 부릅니다. 여기서 중요한 점은 소인수를 세는 방식입니다. 같은 소수라도 곱해진 횟수만큼 중복해서 계산하며, 이를 중복을 포함하여 계산(counted with multiplicity)한다고 표현합니다.예를 들어 4의 유일한 소인수는 2지만, 4 = 2 × 2이므로 2가 두 번 등장합니다. 따라서 4는 2-소수입니다.마찬가지로 8 = 2 × 2 × 2이므로 소인수가 세 번 나타나며, 8은 3-소수입니다.참고로 일반적인

  13. 자바스크립트에서 조건에 따라 10진수를 2진수 또는 16진수로 변환하는 방법

    문제 상황숫자 n을 매개변수로 받아 다음 조건에 따라 변환하는 자바스크립트 함수를 작성해야 합니다.숫자가 짝수이면 → 2진수(binary)로 변환숫자가 홀수이면 → 16진수(hexadecimal)로 변환이 문제는 Number.prototype.toString() 메서드가 지원하는 진법(radix) 인자를 활용하면 아주 간단하게 해결할 수 있습니다. 핵심은 나머지 연산자(%)로 홀짝 여부를 판별한 뒤, 조건에 맞는 진법으로 변환하는 것입니다.코드 예시const num = 1457; const conditionalConvert = (

  14. JavaScript에서 32비트 부호 없는 정수를 IPv4 주소로 변환하는 방법

    문제 이해하기다음과 같은 IPv4 주소가 있다고 가정해 보겠습니다.128.32.10.1이 주소를 2진수로 변환하면 다음과 같습니다.10000000.00100000.00001010.00000001이 2진수를 다시 부호 없는 32비트 십진수로 변환하면 다음 값이 됩니다.2149583361따라서 2149583361에 해당하는 IPv4 주소는 128.32.10.1이라고 할 수 있습니다.접근 방법우리는 32비트 부호 없는 정수를 입력받아 그에 대응하는 IPv4 주소 문자열을 반환하는 JavaScript 함수를 작성해야 합니다.핵심 아이디어는

  15. JavaScript로 두 IP 주소 사이의 IP 주소 개수 계산하는 방법

    문제 정의두 개의 IPv4 주소를 입력받아, 두 주소 사이에 존재하는 IP 주소의 개수를 반환하는 JavaScript 함수를 작성해야 합니다. 이때 첫 번째 주소는 포함하고, 마지막 주소는 제외합니다.가장 간단한 풀이 방법은 각 IP 주소를 하나의 10진수 정수로 변환한 뒤, 두 값의 절대 차이를 구하는 것입니다. IPv4 주소는 0~255 범위의 옥텟 4개로 구성되며, 각 옥텟은 256진법의 자릿값을 가지므로 아래 가중치를 곱해 하나의 정수로 변환할 수 있습니다.첫 번째 옥텟: 256³ = 16,777,216두 번째 옥텟: 256

  16. JavaScript로 보고 말하기(Look-and-Say) 수열 처음 n개 항 생성하기

    문제수학에서 보고 말하기 수열(look-and-say sequence)은 다음과 같이 시작하는 정수 수열입니다.1, 11, 21, 1211, 111221, 312211, ...이 수열의 다음 항을 만들려면, 바로 앞 항의 자릿수를 왼쪽부터 읽어가며 같은 숫자가 연속해서 나타나는 그룹별로 연속 개수 + 해당 숫자 형태로 적어 나가면 됩니다.예를 들어, 1211의 다음 항은 다음과 같습니다.111221그 이유는 1211을 소리 내어 읽으면 다음과 같기 때문입니다.1이 한 개, 2가 한 개, 1이 두 개 → 11 12 21 → 11122

  17. JavaScript로 깨진 시간 문자열(HH:MM:SS) 올바르게 보정하기

    문제 상황"HH:MM:SS" 형식의 시간 문자열을 입력받아 처리하는 JavaScript 함수를 작성해야 합니다.그런데 기존 덧셈 로직에 오류가 있었던 탓에, 상당수의 시간 문자열이 깨져 있는 상태입니다. 즉 분(MM) 부분이 60을 초과하거나, 초(SS) 부분 역시 60을 넘는 비정상적인 값이 저장되어 있을 수 있습니다.따라서 이 함수는 잘못된 값을 올바른 시간으로 보정한 뒤, 새로 수정된 문자열을 반환해야 합니다.예를 들면 다음과 같습니다 −"08:11:71" -> "0

  18. JavaScript로 URL 단축기 만들기: 단축 URL 생성 및 원본 주소 복원 함수 구현

    짧은 URL 서비스(bit.ly, tinyurl 등)를 사용해 보셨다면, 긴 웹 주소가 어떻게 간결한 형태로 변환되고 다시 원래 주소로 되돌아가는지 궁금했을 것입니다. 이번 글에서는 JavaScript만으로 이러한 URL 단축 기능을 직접 구현하는 방법을 알아보겠습니다.문제 정의우리는 다음과 같은 두 가지 JavaScript 함수를 작성해야 합니다.첫 번째 함수(urlShortener): 긴 URL을 입력받아 그에 대응하는 짧은 URL을 반환합니다.두 번째 함수(urlRedirector): 짧은 URL을 입력받아 원래의 긴 URL로

  19. JavaScript로 숫자를 연속된 홀수·짝수 구간으로 나누는 방법

    문제 정의양의 정수 n(n > 0)을 입력받아 처리하는 JavaScript 함수를 작성해야 합니다. 이 함수의 목표는 주어진 숫자를 홀수 또는 짝수 자릿수가 연속되는 구간별로 나누어 배열 형태로 반환하는 것입니다. 다시 말해, 숫자를 왼쪽부터 오른쪽으로 훑어가며 인접한 자릿수의 홀짝 성질이 바뀌는 지점(홀수 → 짝수 또는 짝수 → 홀수)을 기준으로 숫자를 분할하면 됩니다.접근 방식예를 들어 입력값이 124579라고 가정해 보겠습니다.1 — 홀수2, 4 — 짝수가 연속됨5, 7, 9 — 홀수가 연속됨따라서 최종 결과는 [1, 2

  20. JavaScript로 단어·구두점 배열을 문장으로 조립하는 함수 만들기

    문제 상황이번 글에서는 단어와 구두점이 섞여 있는 배열을 입력받아, 하나의 자연스러운 문장으로 조립해 반환하는 JavaScript 함수를 작성해 보겠습니다. 함수는 반드시 아래 세 가지 규칙을 지켜야 합니다.단어 사이에는 항상 공백이 한 칸 있어야 한다.쉼표(,)와 왼쪽에 인접한 단어 사이에는 공백이 없어야 한다.문장 끝에는 마침표(.)가 정확히 하나만 있어야 한다.예를 들어 [hey, ,, and, ,, you]라는 배열이 주어졌다면, 최종 결과는 hey, and, you.가 되어야 합니다.예시 코드 { let res =

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:15/297  20-컴퓨터/Page Goto:1 9 10 11 12 13 14 15 16 17 18 19 20 21