코드잇의 알고리즘의 정석 수업을 수강하고 정리한 글입니다.
우선 하나의 문제에 대해 여러가지 해결방법을 찾아보자. 그리고 어떤 방법이 좋을지 분석하는 것이 알고리즘 공부이다.
코드잇의 알고리즘의 정석 수업을 수강하고 정리한 글입니다. 정확하지 않거나 빠트린 내용이 있을 수 있기 때문에 강의를 수강하시길 권장합니다.정렬(Sorting) : 리스트의 원소들을 특정 순서로 정리하는 것정렬을 배우면서 문제 해결의 기초를 다질 수 있다.모든 개발자가
효율적인 알고리즘을 사용하려면 알고리즘을 평가하는 법을 알아야 한다. 우리는 어떻게 효율적으로 알고리즘을 평가할 수 있을까? 그리고 여기에 얼마나 시간을 써야할까? 코드잇 수업을 듣고 정리해보았다.
문제를 재귀적으로 접근하는 방법은? base case, recursion case로 나누어서 생각해보는 법을 정리해보고 계속해서 연습해보자.
재귀의 두가지 개념인 base case, recursive case의 정의를 활용해서 재귀 함수를 연습해 본다.
재귀의 두가지 개념인 base case, recursive case의 정의를 활용해서 재귀 함수를 연습해 본다.
우리는 여러 알고리즘 패러다임으로 같은 문제를 접근할 수도 있다. 다양한 알고리즘 패러다임을 익혀보자. 자연스럽게 효율적으로 문제를 풀어나갈 수 있다. 먼저 Brute Force에 대해서 알아보자.
복잡한 문제를 해결하려면 어떻게 해야할까? 원래의 문제를 부분문제로 나누고, 각자의 솔루션을 이용해 원래의 문제를 해결할 수도 있다.
알고리즘 패러다임중 다이나믹 프로그래밍에 대해 알아본다. 다이나믹 프로그래밍으로 어떤 문제를 해결할 수 있을까?
이전 포스트에서는 다이나믹 프로그래밍과 기법을 알아보았다. 이번 포스트에서는 각 기법의 장단점을 비교해보고 좀더 심도있는 문제를 풀며 정리해보자.
그리디 알고리즘의 개념과 장단점을 살펴본다.
여러 문제를 그리디 알고리즘으로 풀어본다.