이진 탐색 ( Binary Search ) 이란? 정렬된 배열에서 특정 값을 찾을 때 사용할 수 있는 알고리즘. 처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식. 처음 선택한 중앙값이 만약 찾는 값보다 크면 그 값은
Two Pointers는 1차원 배열에서 두 개의 포인터를 조작하여 원하는 결과를 얻는 알고리즘이다. 두 개의 포인터를 사용하여 기존의 방식보다 시간을 개선할 수 있다.백준 알고리즘에서 관련문제는2003번: 수들의 합 2 이다. 참고!\[leetCode] 189. Ro
배열이 순차 선형 리스트의 자료구조를 갖고 있다.순차 선형 리스트는 원소의 위치에 대한 접근성이 쉽다는 장점이 있지만, 삽입, 삭제 후 원소들을 이동시키는 추가적인 작업과 시간이 필요하다는 단점이 있다.만약 삽입 삭제 연산이 아주 많을 경우 원소들의 이동작업도 그와 비
배열이나 리스트의 요소들의 일정 범위 값을 비교할 때 사용하는 알고리즘이다.이름처럼 고정된 윈도우가 일정한 범위를 유지하면서 이동하는 알고리즘시간 복잡도 : O(n)배열 안에서 길이가 3인 서브배열의 합계를 모두 구해야 하는 경우를 생각해보자. 슬라이딩 윈도우는 다음과
그래프 전체를 탐색하는 방법 중 하나로, 특정 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법가까운 노드부터 먼 노드 순으로 넓게 탐색한다.주로 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 사용한다.큐라는 자료에 정점을 다 담아놓은 뒤 pop 하는
Backtracking 퇴각검색 유망성 점검 후 유망하지 않으면 그 노드의 부모노드로 되돌아간 후 다른 자손노드를 검색하는 방법이다. BFS,DFS처럼 모든 경로를 탐색하지 않기 때문에 시간을 단축시킬 수 있는 알고리즘이다. Reference https://chan
큰 문제를 작은 문제로 나눠서 푸는 알고리즘DP를 사용할 수 있는 알고리즘 문제는 두 가지 조건을 충족한다.Overlapping Subproblem큰 문제와 작은 문제를 같은 방법으로 풀 수 있어야 하고, 문제를 작은 문제로 쪼갤 수 있어야 한다.Optimal Subs
비트 연산자 &은 비트의 논리곱을 하는 연산자이다.2개의 피연산자의 각 자리마다 대응하는 비트가 모두 1일 경우 1을 반환한다.피연산자는 32비트 정수로 변환되며 일련의 비트 0과1로 표현된다.이진법으로 0과1로 표현한 수이진법으로 나타낸 두 피연산자의 교집합을 반환한
leetcode 에서 14 days study plan to crack algo 라는 과정으로 하루에 할당된 문제 2~3개를 매일 풀어보았다.좋았던 점은, 다양한 알고리즘의 풀이 방식 별로 문제를 풀면서 공부할 수 있었다는 것이다.하지만 연결리스트, 그래프와 같은 자
Two Sum - https://leetcode.com/problems/two-sum/Best Time to Buy and Sell Stock - https://leetcode.com/problems/best-time-to-buy-and-sell-st
Stack과 Queue는 비슷한 알고리즘인데, 차이점은 Stack은 들어간 순서와 반대로 나오는 것이고 Queue는 들어간 순서대로 나오는 것이다. >설명 추가 예정 관련 문제 풀이 stack [알고리즘 stack- 크레인 인형뽑기 게임](https://velog