분할정복
-
[JAVA] 백준 16438 원숭이 스포츠알고리즘 공부/문제 풀이 2021. 10. 14. 22:32
https://www.acmicpc.net/problem/16438 16438번: 원숭이 스포츠 승민이는 동물원의 원숭이들을 관리하는 사육사입니다. 이 동물원에는 N마리의 원숭이들이 있고 원숭이들에게 1번부터 N번까지 번호를 붙였습니다. 7일간 동물원에서 원숭이들끼리 스포츠 경기 www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); monkeys = new char[7][N]; StringBuilder sb = new StringBuilder(); for(int i=0;i
-
[알고리즘 개념] 동적계획법알고리즘 공부/알고리즘 개념 2020. 8. 22. 17:54
동적 계획법 영어로 하면 Dynamic Programming이다. 큰 문제를 작은 문제로 나누어 푸는 문제를 일컬어 동저계획법이라고 한다. 이 점에서 분할 정복과 비슷하지만, 가장 큰 차이점은 동적 계획법에서는 쪼개진 작은 문제가 중복되지만, 분할 정복은 절대로 중복될 수가 없다는 점이다. 따라서 동적 계획법은 작은 문제의 결과를 저장해둔다. 이미 계산한 값을 저장해 두는 메모리를 캐시라고 하며 같은 문제가 다시 등장하였을 때 이를 이용하여 문제 해결 속도를 향상할 수 있다. 조건 작은 문제의 반복이 일어나는 경우. 단, 이 작은 문제의 결과는 같아야 한다. 즉, 어떤 문제가 여러 개의 부분 문제로 쪼개어질 수 있어야 하며 이 부분 문제는 같은 부분 문제이거나 재귀 알고리즘을 통해 해결되어야 한다. 피보..