처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
퀴즈 / 알고리즘 / 문제

알고리즘에서 '동적 프로그래밍(Dynamic Programming)'의 두 가지 핵심 조건으로 올바른 것은?

보통 freeCodeCamp
보기 및 정답
A 최적 부분 구조(Optimal Substructure)와 중복 부분 문제(Overlapping Subproblems)가 존재해야 한다
B 데이터가 반드시 오름차순으로 정렬되어 있어야 하고 이진 탐색이 적용 가능해야 하며, 분할 정복 방식으로 완전히 분해할 수 있는 구조여야 한다
C 그래프 구조로 표현 가능해야 하고, 인접 리스트 또는 인접 행렬로 변환할 수 있어야 하며, 순환이 없어야 한다
D 분할 정복 기법으로 문제를 분리할 수 있어야 하고, 그리디 선택이 가능해야 하며, 두 방법을 동시에 적용해야 한다

해설

동적 프로그래밍(DP)은 큰 문제의 최적해가 작은 부분 문제의 최적해로 구성되고(최적 부분 구조), 같은 부분 문제가 반복 계산되는(중복 부분 문제) 경우에 적용합니다. 메모이제이션(Top-Down)이나 타뷸레이션(Bottom-Up)으로 부분 문제의 결과를 저장하여 중복 계산을 방지합니다.

코딩, 제대로 배우고 싶다면?

개념 확인은 퀴즈로, 실력은 실전 프로젝트로.
투더제이 코딩클래스에서 시작하세요.

정규반 살펴보기