HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📎
운영진을 위한 문서 모음
/
🤧
주차별 액션 안내
/
🌮
14~18주차
/
💌
18주차 액션 포인트
/임효성/
📔
회고의 사본
/
📚
주요 알고리즘 이론
📚

주요 알고리즘 이론

Created
Jul 19, 2021
Language
Algorithm

그리디 알고리즘

현재 상황에서 지금 당장 좋은 것만 고르는 방법. 현재 선택이 나중에 미칠 영향에 대해서 고려하지 않음.

거스름돈

가장 큰 화폐 단위부터 돈을 거슬러 주는 것. N원일 때 거슬러줘야 할 동전의 최소 개수를 구할 때, 가장 먼저 500원으로 거슬러 줄 수 있는 만큼 거슬러 준다. 그다음 100원, 50원, 10원짜리 동전을 차례대로 거슬러 줄 수 있을 만큼 거슬러 주면 최소의 동전 개수로 모두 거슬러 줄 수 있음.
단, 800원을 거슬러 줘야 할 때, 화폐단위가 500, 400, 100인 경우처럼 동전의 단위가 서로 배수 형태가 아니라, 무작위로 주어진 경우에는 해결할 수 없음.

탐색 알고리즘

자료구조 기초

데이터를 표현하고 관리하고 처리하기 위한 구조. 스택, 큐, 배열, 트리, 그래프, Set 등이 있음.
  • Stack - 선입후출, 후입선출 구조
  • Queue - 선입선출 구조
    • notion image

재귀 함수

자기 자신을 다시 호출하는 함수. 종료 조건을 꼭 명시해야 함.
def factorial_recursive(n): if n <= 1: return 1 return n * factorial_recursive(n-1) # n! = n * (n-1)! print(recursive_function(5)) #120

그래프

  • 인접 행렬 - 2차원 배열로 그래프의 연결 관계를 표현하는 방식.
  • 인접 리스트 - 리스트로 그래프의 연결 관계를 표현하는 방식.

BFS, DFS

notion image
  • BFS(Breadth First Search, 너비 우선 탐색) - 가까운 노트부터 탐색하는 알고리즘.
  • DFS(Depth-First Search, 깊이 우선 탐색) - 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘. ex) 재귀 함수

호출 스택 (Call stack)

  • 호출 스택은 여러 함수들(functions)을 호출하는 스크립트에서 해당 위치를 추적하는 인터프리터 (웹 브라우저의 자바스크립트 인터프리터같은)를 위한 메커니즘.
  • 현재 어떤 함수가 동작하고있는지, 그 함수 내에서 어떤 함수가 동작하는지, 다음에 어떤 함수가 호출되어야하는지 등을 제어함.