알고리즘 이야기/알고리즘 개념5 투 포인터 이해하기, 리트코드 예제 투 포인터 알고리즘 개념 투 포인터 알고리즘은 주로 정렬된 배열이나 리스트를 다룰 때 사용되며, 문제를 해결하기 위해 두 개의 포인터를 사용하는 방법입니다. 이 알고리즘에서는 보통 한 포인터는 시작점에, 다른 하나는 끝점에 위치하고, 배열을 순회하면서 두 포인터가 가리키는 값을 비교하여 문제의 조건을 만족하는지 확인합니다. 조건에 따라 한 포인터만 이동시키거나 두 포인터를 동시에 이동시키기도 합니다. 이런 방식을 통해, 예를 들어 주어진 합을 만족하는 두 수를 찾거나, 최대 길이의 연속 부분 배열을 찾는 등의 문제를 효율적으로 해결할 수 있습니다. 투 포인터 알고리즘의 주요 장점은 불필요한 탐색을 줄여 시간 복잡도를 개선할 수 있다는 것이며, 대부분의 경우 O(n) 시간 안에 문제를 해결할 수 있습니다... 알고리즘 이야기/알고리즘 개념 2024. 3. 26. 자바스크립트 알고리즘 해시 개념, 리트코드 예제 안녕하세요. 오늘은 자바스크립트 알고리즘 중 해시(hash)에 대한 개념을 설명드리고 해당 개념을 응용해볼만한 쉬운 리트코드 예제를 보여드리도록 할게요. 해시의 개념 해시(Hash)는 키(Key)를 값(Value)에 매핑할 수 있는 데이터 구조입니다. 해시 테이블은 이러한 키와 값을 저장하는 데 사용되며, 복잡한 자료 구조보다 데이터를 더 빠르게 검색, 삽입, 삭제할 수 있게 해 줍니다. 키를 해시 함수를 통해 해시 코드로 변환하며, 이 해시 코드를 사용하여 값이 저장되는 위치, 즉 인덱스를 결정합니다. 자바스크립트 알고리즘에서 해시를 이용하기 위해선 Map 객체를 사용하여 해시 테이블을 구현합니다. Map 객체는 키-값 쌍인 집합입니다. 한 Map에서의 키는 오직 단 하나만 존재합니다. 이는 Map 집.. 알고리즘 이야기/알고리즘 개념 2024. 3. 25. 자바스크립트 알고리즘 재귀(recursion) 개념과 예제 안녕하세요. 오늘은 자바스크립트 알고리즘 중 초반에 감 잡기 가장 힘든 개념 중 하나인 재귀에 대해 포스팅 해보려고 합니다. 재귀란 무엇일까? 재귀는 어떤 함수가 자기 자신을 호출하는 기법입니다. 모든 재귀 함수는 종료 조건을 갖는데, 재귀 호출이 무한히 반복되지 않도록 하기 위해서지요. 재귀는 정말 여러 방면에서 사용하는데, DOM, JSON.parse 등과 같은 기본적인 자바스크립트 실행 코드들에도 재귀가 들어있습니다. 재귀를 사용하면 복잡한 알고리즘이 좀 더 간결하고 자연스럽게 풀리는 경우가 많습니다. 예시 1 - countDown 아래는 countDown을 하는 함수입니다. 기본적인 반복문으로 사용하면 아래처럼 쓰일 수 있는데요. // Iterative Version function countDo.. 알고리즘 이야기/알고리즘 개념 2024. 3. 25. 투 포인터 알고리즘 개념, 쉬운 예시 문제, 리트코드 문제 투 포인터 알고리즘 개념 설명 투 포인터(Two-pointers) 알고리즘은 주로 배열이나 리스트와 같은 선형 구조에서 특정 조건을 만족하는 요소들을 찾거나, 작업을 수행할 때 사용되는 기법입니다. 이 기법은 주로 두 개의 다른 위치를 가리키는 포인터를 활용하여, 중첩된 루프의 사용 없이 문제를 효율적으로 해결할 수 있게 도와줍니다. 이를 통해 시간 복잡도를 줄일 수 있으며, 주로 정렬된 배열이나 리스트에서 두 요소의 합이나 차이와 같은 특정 조건을 만족하는 쌍을 찾을 때 유용합니다. 예를 들어, 정렬된 두 배열의 모든 요소를 합치거나, 주어진 합을 이루는 두 요소를 찾는 문제에 투 포인터 알고리즘을 적용할 수 있습니다. 이 알고리즘의 기본 아이디어는 시작점과 끝점이라는 두 포인터를 배열의 시작과 끝에 .. 알고리즘 이야기/알고리즘 개념 2024. 3. 11. JS 알고리즘 - substring(), substr() & Math.floor(), toFixed() 정리 자바스크립트 알고리즘 문제를 풀다가 헷갈리는 메서드 몇 개가 있어서 정리한다. substring(), substr() 차이 substr(startIndex, length) substr() 메서드는 문자열에서 지정된 시작 인덱스(startIndex)부터 시작하여 지정된 길이(length)만큼의 부분 문자열을 반환한다. startIndex는 0부터 시작하는 인덱스를 지정하며, 음수 값을 사용할 수도 있다. 음수 값인 경우 문자열의 끝에서부터 역으로 세는 것을 의미한다. 예를 들어, "Hello, World!".substr(7, 5)는 문자열 "World"를 반환한다. substring(startIndex, endIndex) substring() 메서드는 문자열에서 지정된 시작 인덱스(startIndex)부터.. 알고리즘 이야기/알고리즘 개념 2023. 9. 29. 이전 1 다음