복잡도는 알고리즘의 성능을 나타내는 척도이다.시간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석공간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석→ 동일한 기능을 수행하는 알고리즘이 있다면 일반적으로 복잡도가 낮을수록 좋은 알
👉 그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구그리디 해법은 정당성 분석이 중요! ⇒ 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수
타색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있음 → 자주 출제됨 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조입구와 출구가 동일한 형태로 스택을 시각화할 수 있음BFS는 너비 우
정렬 알고리즘 정렬이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것을 말한다.일반적으로 문제 상황에 따라서 적절한 정렬 알고리즘이 공식처럼 사용된다.정렬 알고리즘으로 데이터를 정렬하면 이진탐색이 가능해진다. → 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택
리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용하다.최악의 경우 시간 복잡도는 $O(N)$정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이진탐색은
다이나믹 프로그래밍은 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법이다. (동적계획법)다이나믹 프로그래밍에서는 이미 계산된 결과를 별도의 메모리에 저장하여 다시 계산하지 않도록 해 수행 시간을 비약적으로 향상시킨다. 최적 부분 구조(Optima