본문 바로가기
반응형

131 STORY241

이진 검색 - Binary Search 문제. 정수배열 arr과 정수 num을 입력받아 arr안에 num이 있다면 해당요소의 인덱스를 반환하고, 없으면 -1 반환 단, 정수배열 arr은 정렬이 되어있다. // 1. 정렬된 배열과 값을 입력 받는다. const binarySearch = (arr, num) => { // 2. 배열의 시작 부분에 왼쪽 포인터, 끝부분에 오른쪽 포인터 let left = 0; let right = arr.length - 1 while(left arr[median]){ // 3-2. 중간 포인터 값이 작으면 왼쪽 포인터를 올리고 left = median + 1 } else { // 3.3 중간 포인터 값이 크면 오른쪽 포인터를 내린다. right = median - 1 } } // 4. 값을 찾지 못하면 -1 반환 .. Programming/알고리즘 2023. 4. 2.
선형 검색 - LinearSearch 문제. 정수배열 arr과 정수 num을 입력 받아 arr안에 num이 있다면 해당 요소의 인덱스값을 반환하고 없으면 -1 반환 // 1. 배열과 값을 입력받는다. const linearSearch = (arr, num) => { // 2. 배열을 순회하면서 현재 배열 요소가 값과 같은지 확인 for(let i = 0; i < arr.length; i++){ // 3. 만약 같으면, 해당 요소가 발견된 인덱스를 반환 if(arr[i] === num) { return i; } // 4. 같은 값이 없으면 -1 반환 return -1; } } linearSearch([7,4,3,22,5,6,1,9], 3) // 2 Programming/알고리즘 2023. 4. 1.
문자열 검색 문제. 긴문자열과 짧은 문자열을 입력받고, 긴문자열 안에 짧은 문자열이 포함되어 있는 수를 반환하는 함수. // 1. 긴 문자열과 짧은 문자열을 받는 함수를 만든다. function naiveSearch(long, short){ let count = 0; // 2. 긴 문자열을 반복문으로 순회. for(let i = 0; i < long.length; i++){ // 3. 짧은 문자열을 반복문으로 순회 for(let j = 0; j < short.length; j++){ // 4. 만약 문자가 일치하지 않는다면 내부 반복문을 빠져나옵니다. if(short[j] !== long[i+j]) { break; } // 5. 만약 문자가 일치한다면 계속해서 반복문 진행 // 6. 내부 반목문을 완료하고 일치하는 .. Programming/알고리즘 2023. 3. 31.
메모이제이션 - 자바스크립트 메모이제이션(Memoization)은 계산 결과를 저장하여 재활용하는 기법입니다. 함수의 실행 결과를 저장하는 캐시(Cache)를 활용하여, 이전에 계산한 결과를 저장하고 동일한 입력값이 들어올 때는 캐시된 결과를 반환함으로써 함수의 실행 속도를 높일 수 있습니다. 메모이제이션은 주로 재귀 함수에서 사용되며, 피보나치 수열과 같이 중복 계산이 발생하는 함수에서 특히 유용합니다. 예를 들어, 피보나치 수열의 10번째 항을 구하는 경우, 이전 항들의 값을 계산하는 과정에서 중복 계산이 발생합니다. 이때, 메모이제이션을 사용하여 이미 계산된 항들의 결과를 저장하고 재활용함으로써 중복 계산을 피할 수 있습니다. 자바스크립트에서는 객체를 활용하여 메모이제이션을 구현할 수 있습니다. 함수 내부에서 객체를 선언하고,.. Programming/Java Script 2023. 3. 27.
재귀함수로 문자열 뒤집기 문자열을 입력받아 거꾸로 뒤집어 반환하는 함수 만들기 function reverse(str) { // 입력된 문자열이 빈 문자열인 경우 if (str === '') { return ''; } // 문자열의 첫 번째 문자와 나머지 문자열을 분리 const firstChar = str[0]; const restChars = str.slice(1); // 나머지 문자열을 거꾸로 뒤집은 결과와 첫 번째 문자를 연결하여 반환 return reverse(restChars) + firstChar; } console.log(reverse('hello') //olleh 1. function reverse(str) : 입력된 문자열을 거꾸로 뒤집어 반환하는 재귀 함수 reverse의 선언부입니다. str 매개변수는 입력된.. Programming/알고리즘 2023. 3. 26.
반응형