목록동적계획법 (69)
넘치게 채우기
https://www.acmicpc.net/problem/9465BOJ - 스티커문제 유형: 다이나믹 프로그래밍문제 난이도: Silver I시간 제한: 1초메모리 제한: 256MB 문제상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다.모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 ..
https://www.acmicpc.net/problem/12865BOJ - 평범한 배낭문제 유형: 다이나믹 프로그래밍, 배낭 문제문제 난이도: Gold V시간 제한: 2초메모리 제한: 512MB 문제이 문제는 아주 평범한 배낭에 관한 문제이다.한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다.준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 ..
https://www.acmicpc.net/problem/9251BOJ - LCS문제 유형: 문자열 처리, 재귀, 다이나믹 프로그래밍문제 난이도: Gold V시간 제한: 0.1초메모리 제한: 256MB 문제LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. 출력첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. 풀이dp[i1][i2]는 첫 번째 문자열의 i1인덱스부터의 부분문자..
https://www.acmicpc.net/problem/2096BOJ - 내려가기문제 유형: 다이나믹 프로그래밍문제 난이도: Gold V시간 제한: 1초메모리 제한: 4MB 문제N줄에 0 이상 9 이하의 숫자가 세 개씩 적혀 있다. 내려가기 게임을 하고 있는데, 이 게임은 첫 줄에서 시작해서 마지막 줄에서 끝나게 되는 놀이이다.먼저 처음에 적혀 있는 세 개의 숫자 중에서 하나를 골라서 시작하게 된다. 그리고 다음 줄로 내려가는데, 다음 줄로 내려갈 때에는 다음과 같은 제약 조건이 있다. 바로 아래의 수로 넘어가거나, 아니면 바로 아래의 수와 붙어 있는 수로만 이동할 수 있다는 것이다. 이 제약 조건을 그림으로 나타내어 보면 다음과 같다.별표는 현재 위치이고, 그 아랫 줄의 파란 동그라미는 원룡이가 다음..
https://www.acmicpc.net/problem/17070BOJ - 파이프 옮기기 1문제 유형: dfs/bfs, 다이나믹 프로그래밍문제 난이도: Gold V시간 제한메모리 제한 문제유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다.오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다.파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다.파이프는 매우 무겁기 때문에, 유현이는 파이..
https://leetcode.com/problems/minimum-total-distance-traveled/description/?envType=daily-question&envId=2024-10-31leetcode - Minimum Total Distance Traveled문제 유형: 다이나믹 프로그래밍, 슬라이딩 윈도우문제 난이도: Hard 문제There are some robots and factories on the X-axis. You are given an integer array robot where robot[i] is the position of the ith robot. You are also given a 2D integer array factory where factory[j] ..
https://www.acmicpc.net/problem/1932BOJ - 정수 삼각형문제 유형: 다이나믹 프로그래밍문제 난이도: Silver I시간 제한: 2초메모리 제한: 128MB 문제 7 3 8 8 1 0 2 7 4 44 5 2 6 5위 그림은 크기가 5인 정수 삼각형의 한 모습이다.맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다.삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 모두 정수이..
https://leetcode.com/problems/minimum-number-of-removals-to-make-mountain-array/description/?envType=daily-question&envId=2024-10-30leetcode - Minimum Number of Removals to Make Mountain Array문제 유형: LIS(Longest Increasing Subsequence), 다이나믹 프로그래밍문제 난이도: Hard 문제You may recall that an array arr is a mountain array if and only if:arr.length >= 3There exists some index i (0-indexed) with 0 such tha..
https://codeforces.com/contest/2033/problem/DCodeforces Round 981(Div.3) - D. Kosuke's Assignment문제 유형: 부분합, 그리디, 다이나믹 프로그래밍시간 제한: 2초메모리 제한: 256MB 문제After a trip with Sakurako, Kousuke was very scared because he forgot about his programming assignment.In this assignment, the teacher gave him an array a">a of n">n integers and asked him to calculate the number of non-overlapping segments of the a..
https://leetcode.com/problems/maximum-number-of-moves-in-a-grid/?envType=daily-question&envId=2024-10-29leetcode - Maximum Number of Moves in a Grid문제 유형: 다이나믹 프로그래밍, 재귀, dfs, 행렬문제 난이도: Medium 문제You are given a 0-indexed m x n matrix grid consisting of positive integers.You can start at any cell in the first column of the matrix, and traverse the grid in the following way:From a cell (row, col),..