프론트 개발자를 위한 여정

모든 영역을 안내하는 개발자

재귀 3

[JS] 탐색 알고리즘 (이진 탐색) / 반복문, 재귀함수 함수비교

🚀 문제정렬된 배열에서 특정 값을 찾는 이진 탐색 알고리즘을 구현하시오.function binarySearch(arr, target) { // 여기에 코드 작성}console.log(binarySearch([1, 3, 5, 7, 9, 11], 5)); // 2🔹 코드function binarySearch(arr, target) { let left = 0; let right = arr.length - 1; while (left 📌 이진 탐색 문제🔎 1️⃣ 문제가 묻는 것이진 탐색 문제에서 요구하는 것은 정렬된 배열에서 특정 값을 효율적으로 찾는 방법입니다. 이진 탐색은 배열을 반씩 나누어가며 탐색을 진행하므로 시간 복잡도를 O(log N)로 줄일 수 있습니다. 문제는 일반적으로 배..

메모이제이션과 동적 계획법(DP): Top-Down vs Bottom-Up 방식

💡 1. 동적 계획법(DP) 개요동적 계획법(DP)은 문제를 작은 하위 문제로 나누어 해결하는 알고리즘 기법입니다. 반복적인 계산을 피하고 중복 계산을 줄여 성능을 향상시키는 방식입니다.DP에서 중요한 개념은 중복 계산을 방지하는 것과 최적의 해법을 찾는 것입니다.💡 2. 메모이제이션과 DP: 무엇이 다를까?메모이제이션은 동적 계획법의 일종입니다. 구체적으로, 메모이제이션은 Top-Down 방식으로 문제를 해결하며, 계산한 결과를 저장하고 재사용하는 기법입니다. DP의 Bottom-Up 방식은 작은 문제부터 차례대로 해결하여 큰 문제를 풀어가는 방식입니다.  방법 방식 설명메모이제이션Top-Down 방식재귀를 이용하여 큰 문제를 먼저 해결하고, 작은 문제를 나누어 해결. 중복 계산을 줄이기 위해 결..

Algorithm 2025.03.16

[JS] 문자열 뒤집기 / array-reverse, for문, 재귀함수

📌 문제주어진 문자열을 뒤집어서 반환하는 함수를 구현하시오. function reverseString(str) { // 여기에 코드 작성}console.log(reverseString("hello")); // "olleh"🔎 풀이 과정function reverseString(str) { return str.split('').reverse().join('');}console.log(reverseString("hello")); // "olleh"문제 접근 방식문자열을 배열로 변환한 후, reverse() 메서드를 사용하여 순서를 뒤집고 다시 문자열로 결합하는 것이다.문제 해결 과정split('')을 사용하여 문자열을 문자 배열로 변환"hello".split(''); // ['h', 'e', 'l'..