TIL8 - 2023.10.02

2023. 10. 2. 17:58· 👨‍💻 TIL
목차
  1. 백트래킹
  2. 동적계획법

백트래킹

  • 모든 경우의 수를 탐색하는 알고리즘
  • DFS나 BFS를 이용할 수 있다
  • 가지치기(Pruning) : 효율을 위해 탐색하지 않아도 되는 곳을 미리 막는 것
  • 자바스크립트는 재귀 효율이 나쁘게 때문에 DFS를 구현할 경우 스택을 이용하는 것이 좋다
  • 탐색에서 순환(Cycle)이 발생할 수 있다면 BFS를 이용하는 것이 편하다
  • 핵심은 가지치기 !!!

백트래킹 로직을 어떻게 작성할 것인가?

  • 우선 모든 경우의 수를 찾을 수 있도록 코딩
  • 이후 문제에서 특정한 조건을 만족하는 것만 탐색하고 나머지는 탐색하지 않도록 조건문을 작성
  • 즉, 절대로 답이 될 수 없는 문제는 탐색을 종료한다

동적계획법

  • 해결한 작은 문제로 큰 문제를 해결하는 문제 풀이 방식
  • 그리디(Greedy)나 백트래킹처럼 특정 알고리즘이 아닌 문제 해결 방식을 의미
  • Dynamic Programming(DP)이라고도 부른다
  • 메모리를 많이 사용하는 대신 빠른 성능을 자랑한다
  • 두 가지 방법론 : 메모이제이션(Memoization), 타뷸레이션(Tabulation)

메모이제이션

  • 하향식 접근법
  • 작은 문제들의 결과를 저장해 두었다가 필요할 때 꺼내 쓰는 것
  • 필요할 때 계산(Lazy evaluation)
  • ex) 피보나치 수열

타뷸레이션

  • 상향식 접근법
  • 필요한 값들을 미리 계산해두는 것(Eager evaluation)

동적 계획법 문제 어떻게 접근할까?

  • 가장 작은 문제를 정의할 수 있는지?
  • 작은 문제를 통해 큰 문제를 해결할 수 있는 규칙이 있는지?

 

'👨‍💻 TIL' 카테고리의 다른 글

TIL10 - 2023.10.04  (1) 2023.10.06
TIL9 - 2023.10.03  (1) 2023.10.04
TIL7 - 2023.09.27  (0) 2023.09.27
TIL6 - 2023.09.26  (0) 2023.09.26
TIL5 - 2023.09.25  (0) 2023.09.25
  1. 백트래킹
  2. 동적계획법
'👨‍💻 TIL' 카테고리의 다른 글
  • TIL10 - 2023.10.04
  • TIL9 - 2023.10.03
  • TIL7 - 2023.09.27
  • TIL6 - 2023.09.26
zunwon
zunwon
zunwon
준원의 개발일지
zunwon
전체
오늘
어제
  • 분류 전체보기
    • 📒 JavaScript
    • 📘 TypeScript
    • React.js
    • 📗 Vue.js
    • 💻 알고리즘
      • 프로그래머스
      • 백준
    • ✏ 회고
      • 후기
    • 👨‍💻 TIL
    • 📋 오픈소스
    • 기타

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Vue
  • vercel
  • css
  • TypeScript
  • 함수형 자바스크립트
  • 국비지원교육
  • til
  • 코딩부트캠프
  • 데브코스
  • 프로그래머스
  • 스나이퍼팩토리
  • JavaScript
  • 인사이드아웃
  • fontend
  • 회고
  • 프론트엔드
  • 오픈소스컨트리뷰션
  • 프로그래머스 데브코스
  • 알고리즘
  • Vue.js
  • 프로젝트캠프
  • mil
  • frontend
  • 미래내일일경험
  • 함수형자바스크립트
  • githru
  • 자료구조
  • udemy
  • 부스트캠프
  • next.js

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
zunwon
TIL8 - 2023.10.02
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.