>웹 프론트엔드 >JS 튜토리얼 >실습을 위한 필수 JavaScript 알고리즘 문제

실습을 위한 필수 JavaScript 알고리즘 문제

WBOY
WBOY원래의
2024-08-28 06:05:32317검색

Essential JavaScript Algorithm Questions for Practice

코딩 인터뷰를 준비 중이거나 문제 해결 능력을 강화하려는 경우, 알고리즘을 연습하는 것은 JavaScript를 마스터하는 데 중요합니다. 알고리즘은 고급 개발자만을 위한 것이 아닙니다. 알고리즘은 애플리케이션에서 데이터를 조작하고 성능을 최적화하는 방법을 이해하는 데 기본입니다.

이 게시물에서는 모든 개발자가 연습해야 하는 몇 가지 필수 JavaScript 알고리즘 질문을 살펴보겠습니다. 이러한 질문은 기본적인 배열 조작부터 보다 복잡한 문자열 처리에 이르기까지 다양한 주제를 다루며, 고급 문제를 해결하기 위한 탄탄한 기반을 제공합니다.


1. 문자열 뒤집기

문제:
문자열을 입력으로 받아 역방향 문자열을 반환하는 함수를 작성하세요.

예:

// Input: "hello"
// Output: "olleh"

해결책:
JavaScript에서 문자열을 뒤집는 방법에는 여러 가지가 있습니다. 가장 간단한 방법 중 하나는 문자열을 문자 배열로 분할하고 배열을 뒤집은 다음 다시 문자열로 결합하는 것입니다.

function reverseString(str) {
  return str.split('').reverse().join('');
}

console.log(reverseString("hello")); // Output: "olleh"

2. 회문 확인

문제:
회문은 뒤에서 읽어도 앞으로 읽어도 같은 단어나 구입니다. 주어진 문자열이 회문인지 확인하는 함수를 작성하세요.

예:

// Input: "racecar"
// Output: true

// Input: "hello"
// Output: false

해결책:
문자열 반전 방법을 재사용하여 원래 문자열이 반대 문자열과 같은지 확인할 수 있습니다.

function isPalindrome(str) {
  const reversedStr = str.split('').reverse().join('');
  return str === reversedStr;
}

console.log(isPalindrome("racecar")); // Output: true
console.log(isPalindrome("hello"));   // Output: false

3. 배열에서 가장 큰 숫자 찾기

문제:
숫자 배열을 입력으로 받아 가장 큰 숫자를 반환하는 함수를 작성하세요.

예:

// Input: [1, 2, 3, 4, 5]
// Output: 5

해결책:
Math.max 방법을 스프레드 연산자와 함께 사용하여 가장 큰 숫자를 찾을 수 있습니다.

function findLargest(arr) {
  return Math.max(...arr);
}

console.log(findLargest([1, 2, 3, 4, 5])); // Output: 5

4. 피즈버즈

문제:
1부터 100까지의 숫자를 인쇄하는 함수를 작성하세요. 하지만 3의 배수인 경우 숫자 대신 "Fizz"를 인쇄하고, 5의 배수인 경우 "Buzz"를 인쇄하세요. 3과 5의 배수인 경우 "FizzBuzz"를 인쇄하세요.

해결책:
기본 루프 및 조건문 구현 능력을 테스트하는 고전적인 인터뷰 질문입니다.

function fizzBuzz() {
  for (let i = 1; i <= 100; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
      console.log("FizzBuzz");
    } else if (i % 3 === 0) {
      console.log("Fizz");
    } else if (i % 5 === 0) {
      console.log("Buzz");
    } else {
      console.log(i);
    }
  }
}

fizzBuzz();

5. 숫자 인수분해

문제:
숫자의 계승값을 반환하는 함수를 작성하세요. 숫자 n의 계승은 n보다 작거나 같은 모든 양의 정수의 곱입니다.

예:

// Input: 5
// Output: 120 (5 * 4 * 3 * 2 * 1)

해결책:
계승은 재귀적으로 또는 반복적으로 풀 수 있습니다. 재귀를 사용한 예는 다음과 같습니다.

function factorialize(num) {
  if (num === 0 || num === 1) {
    return 1;
  } else {
    return num * factorialize(num - 1);
  }
}

console.log(factorialize(5)); // Output: 120

6. 문자열에서 가장 긴 단어 찾기

문제:
문자열을 입력으로 받아 가장 긴 단어의 길이를 반환하는 함수를 작성하세요.

예:

// Input: "The quick brown fox jumped over the lazy dog"
// Output: 6 (jumped)

해결책:
문자열을 단어 배열로 분할한 다음 배열을 줄여 가장 긴 단어를 찾을 수 있습니다.

function findLongestWord(str) {
  const words = str.split(' ');
  let maxLength = 0;

  for (let word of words) {
    if (word.length > maxLength) {
      maxLength = word.length;
    }
  }

  return maxLength;
}

console.log(findLongestWord("The quick brown fox jumped over the lazy dog")); // Output: 6

7. 배열에서 중복 제거

문제:
배열에서 중복된 값을 제거하는 함수를 작성하세요.

예:

// Input: [1, 2, 2, 3, 4, 4, 5]
// Output: [1, 2, 3, 4, 5]

해결책:
중복을 제거하는 가장 간단한 방법 중 하나는 고유한 값만 저장하는 세트를 사용하는 것입니다.

function removeDuplicates(arr) {
  return [...new Set(arr)];
}

console.log(removeDuplicates([1, 2, 2, 3, 4, 4, 5])); // Output: [1, 2, 3, 4, 5]

결론

이러한 기본적인 JavaScript 알고리즘 질문을 연습하면 문제 해결 능력이 향상되고 고급 과제에 대비할 수 있습니다. 이러한 기본 사항을 숙지하면 효율적이고 확장 가능한 코드를 작성하는 데 필수적인 복잡한 알고리즘과 데이터 구조를 더 잘 다룰 수 있게 됩니다. 계속 연습하면 코딩 속도와 정확성이 모두 향상되는 것을 느낄 수 있습니다!

즐거운 코딩 ?‍?

위 내용은 실습을 위한 필수 JavaScript 알고리즘 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.