빅오 표기법(big o Notation)시간복잡도(time complexity)공간복잡도(space complexity)빅오 표기법을 이용하여 각기 다른 알고리즘들의 시간복잡도와 공간복잡도를 평가한다.같은 문제를 해결하는 여러 방법이 있을때 각 방법 중 어느 것이 베스
특정 작업을 달성하기 위한 과정이나 일련의 단계문제를 해결하기 위해 수행해야 하는 일련의 수학적 단계왜 알아야되나?→ 프로그래밍에서 수행하는 거의 모든 작업에는 일종의 알고리즘이 포함.면접에서는 항상 알고리즘이 다뤄진다.알고리즘을 다루기를 잘하는 법문제 해결을 위한 계
유용하게 쓰일 수 있는 일반적인 패턴 몇가지를 학습하면 도움이 된다.패턴은 코드를 작성하는 일반적인 접근법, 즉 원형빈도 카운터라고 부르는데 꼭 이렇게만 불리지는 않음.배열이나 객체의 값의 포함 유무나 빈도를 모을때 쓴다중첩 반복문이나 O(n^2)를 피할 수 있어서 유
recursion한 가지 문제를 가지고, 어떤 종료점(end point)에 도달할 때까지 더 작은 부분이나 변경되는 부분에서 반복적으로 수행하는 것을 재귀라고 한다.그 종료점을 종료 조건(base case)라고 부른다.재귀는 자기자신을 호출하는 절차이다.재귀를 사용해서
검색 알고리즘이란선형 검색(linear search)이진 검색(binary search)나이브한 문자열 검색 알고리즘KMP 문자열 검색 알고리즘하나에 한개씩 찾는 게 맞는지 대조해보면서 끝까지 반복하는 것.첫부분에서 시작해서 끝부분으로 이동하면서 한 번에 하나의 항목을
어렵다고 겁먹는 사람이 많은데…매우 중요한 파트이다. 정렬이 컴퓨터 공학 분야의 정수나 다름없다!Sorting, 정렬 알고리즘이란 컬렉션(collection)의 항목을 재배열하는 과정을 의미한다.보통 배열을 가지고 많이 한다.숫자를 가진 배열을 오름차순, 또는 내림차순
합병 정렬은 빠르지만 조금 더 어렵다. 아주 유명한 방식이다.1948년 폰 노이만이 최초의 합병 정렬 프로그램을 작성했다.합병정렬은 두 가지 조합으로 되어 있다.합병정렬0개나 1개의 요소로 된 배열은 이미 정렬되어 있다는 점을 이용한다.배열을 더 작은 하위 배열로 나눈
합병 정렬과 같은 가정으로 작동한다.피벗 포인트라는 요소를 정해서 그 피벗 포인트보다 작은 숫자는 피벗 포인트 왼쪽으로 옮김피벗포인트보다 큰 숫자는 피벗 포인트 오른쪽으로 옮김.피벗포인트는 ‘올바른 위치’에 있음.이 과정을 재귀적으로 반복. 피벗 포인트 왼쪽에 있는 덩
앞에까지 정렬은 비교 정렬 알고리즘.기수 정렬은 비교를 수행하지 않는다.숫자로 작동되며 이진수를 사용한다.https://visualgo.net/en/sorting숫자만 가능하며 숫자를 옆에 것과 1:1 로 비교하지 않고1의 자리만 보고 1-9까지 버켓에 담고,
다익스트라 알고리즘은 그래프의 두 정점 사이에 존재하는 최단 경로를 찾는 것.다익스트라 알고리즘은 다익스트라 최단 경로 알고리즘의 줄임말이다그리디 알고리즘의 일종.다익스트라 알고리즘은 그래프에 대해 작동한다.코딩을 할때 우선순위 큐를 사용한다정점들을 연결하는 간선에 길
Dynamic Programming, DP동적 계획법이라고도 한다.주어진 문제를 여러 개의 하위 문제(subproblem)으로 나누어 푼 다음, 그것을 결합하여 최종적인 목적에 도달하는 방법이다.하위 문제에서 해결한 해결책을 저장한 후에(Memoization), 같은