자료구조&알고리즘/동적 프로그래밍15 [이.코.테] Chapter 08 동적 프로그래밍 - 개미 전사 (java) 개미 전사 문제 (교재 220p) 난이도 ●●○ | 풀이 시간 30분 | 시간 제한 1초 | 메모리 제한 128MB 개미 전사는 부족한 식량을 충당하고자 메뚜기 마을의 식량창고를 몰래 공격하려고 한다. 메뚜기 마을의 식량창고는 일직선으로 이어져있다. 개미 전사가 정찰병에게 들키지 않고 식량창고를 약탈하기 위해서는 최소한 한 칸 이상 떨어진 식량창고를 약탈해야 한다. 개미 전사는 최대한 많은 식량을 얻기를 원한다. 개미 전사를 위해 식량창고 N개에 대한 정보가 주어졌을 때 얻을 수 있는 식량의 최댓값을 구하는 프로그램을 작성하시오. 입출력 조건) 입력 조건 - 첫째 줄에 식량창고의 개수 N이 주어진다. (3 ≤ N ≤ 100) - 둘째 줄에 공백으로 구분되어 각 식량창고에 저장된 식량의 개수 K가 주어진다.. 2020. 11. 6. [이.코.테] Chapter 08 동적 프로그래밍 - 1로 만들기 (java) 1로 만들기 (교재 217p) 난이도 ●◐○ | 풀이 시간 20분 | 시간 제한 1초 | 메모리 제한 128MB 문제정수 X가 주어질 때 정수 X에 사용할 수 있는 연산은 다음과 같이 4가지이다. X가 5로 나누어떨어지면, 5로 나눈다. X가 3으로 나누어떨이지면, 3으로 나눈다. X가 2로 나누어떨어지면, 2로 나눈다. X에서 1을 뺀다. 정수 X가 주어졌을 때, 연산 4개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입출력 조건) 입력 조건 첫째 줄에 정수 X가 주어진다. (1 ≤ X ≤ 30,000) 출력 조건 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 입출력 예시) 입력 예시 출력 예시 26 3 문제 풀이 방법 이 문제를 점화식으로 표현해보면 아래와 .. 2020. 11. 6. [이.코.테] Chapter 08 다이나믹 프로그래밍 다이나믹 프로그래밍이란?: 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법 다이나믹 프로그래밍을 사용할 수 있는 조건1. 큰 문제를 작은 문제로 나눌 수 있다. 2. 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다. 탑다운(Top-Down) 방식- 재귀 함수를 이용하여 다이나믹 프로그래밍 소스코드를 작성하는 방법을, 큰 문제를 해결하기 위해 작은 문제를 호출한다 하여 탑다운 방식이라 말한다. - '하향식'이라고도 한다. - 메모제이션은 탑다운 방식에 국한되어 사용 보텀업(Bottom-Up) 방식- 단순히 반복문을 이용하여 소스코드를 작성하는 경우 작은 문제부터 차근차근 답을 도출한다고 하여 보텀업 방식이라고 말한다. - '상향식'이라고도 .. 2020. 11. 5. 이전 1 2 다음 반응형