코딩 인터뷰를 준비 중이거나 문제 해결 능력을 강화하려는 경우, 알고리즘을 연습하는 것은 JavaScript를 마스터하는 데 중요합니다. 알고리즘은 고급 개발자만을 위한 것이 아닙니다. 알고리즘은 애플리케이션에서 데이터를 조작하고 성능을 최적화하는 방법을 이해하는 데 기본입니다.
이 게시물에서는 모든 개발자가 연습해야 하는 몇 가지 필수 JavaScript 알고리즘 질문을 살펴보겠습니다. 이러한 질문은 기본적인 배열 조작부터 보다 복잡한 문자열 처리에 이르기까지 다양한 주제를 다루며, 고급 문제를 해결하기 위한 탄탄한 기반을 제공합니다.
문제:
문자열을 입력으로 받아 역방향 문자열을 반환하는 함수를 작성하세요.
예:
// Input: "hello" // Output: "olleh"
해결책:
JavaScript에서 문자열을 뒤집는 방법에는 여러 가지가 있습니다. 가장 간단한 방법 중 하나는 문자열을 문자 배열로 분할하고 배열을 뒤집은 다음 다시 문자열로 결합하는 것입니다.
function reverseString(str) { return str.split('').reverse().join(''); } console.log(reverseString("hello")); // Output: "olleh"
문제:
회문은 뒤에서 읽어도 앞으로 읽어도 같은 단어나 구입니다. 주어진 문자열이 회문인지 확인하는 함수를 작성하세요.
예:
// 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
문제:
숫자 배열을 입력으로 받아 가장 큰 숫자를 반환하는 함수를 작성하세요.
예:
// 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
문제:
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();
문제:
숫자의 계승값을 반환하는 함수를 작성하세요. 숫자 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
문제:
문자열을 입력으로 받아 가장 긴 단어의 길이를 반환하는 함수를 작성하세요.
예:
// 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
문제:
배열에서 중복된 값을 제거하는 함수를 작성하세요.
예:
// 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!