dp 5

[BOJ] 2096. 내려가기

www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 문제: 주어진 배열에서 인접한 부분으로 위에서 부터 내려가며 숫자를 더할 때, 최소 값과 최대 값을 구하여라 문제 이해하기!! DP문제로, 앞에서 더한 인접한 부분 것들에 최대 값과 최소 값을 구해서 더해가며 밑으로 내려가면 되는 문제입니다. 하지만 이 문제만 나온다면 골드문제가 아니라 실버 1~2 정도 문제겠죠? 이 문제는 DP로 푸는 방법만 구하는게 아니라 실제로 사용되는 메모리의 양도 중요했던 문제입니다. 이 문제를 풀..

Study/BOJ 2021.07.29

[BOJ] 1238. 파티

www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 문제: 파티에 다녀오는 최단 거리(왕복)를 구하라. 문제 이해하기!! 다익스트라 문제였습니다. 하지만 다익스트라를 한 번만에 푸는 것이 아닌 단 방향 길을 양 방향으로 생각해야 되는 문제에요. 시작하는 지점이 여러 개라고 모두 생각하다가는 시간초과가 날 수 있습니다. 제가 푼 방식을 설명하자면, 1. 먼저 도착지점에서 각 마을 파티사람들의 오는 최소거리를 다익스트라로 찾습니다. 2..

Study/BOJ 2021.06.07

[BOJ] 9251. LCS

www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 문제 : 최장 공통 부분 수열을 찾아라. ⊙ DP - 다이나믹 프로그래밍 제가 백준에서 코드 1등을 했습니다!! 감격쓰~~ ㅎㅎㅎ 감격을 뒤로 하고! 풀이 방법은 DP를 설정하고, DP에 한 배열에서 최장 공통 수열이 되는 대로 찾는 겁니다. 첫 번째 배열의 인덱스 처음부터 끝까지 하나씩을 순서대로 골라, 두 번째 배열 전체를 탐색하면서 둘이 같은지를 비교합니다. 그..

Study/BOJ 2020.11.06

[BOJ] 12865. 평범한 배낭

www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 : 배낭 안에 들어갈 수 있는 최대 가치는? ⊙ DP - 다이나믹 프로그래밍 DP의 기본 문제 중 하나라고 할 수 있는 배낭 알고리즘입니다. 배낭 알고리즘은 계속해서 넣어야 하기 때문에 2차원 DP 배열이 필요하지만, 저는 그냥 배열을 2개 만들어서 참조형식으로 swap하는 형식을 택했습니다. DP가 움직이기 위해서는 전 단계의 DP 배열이..

Study/BOJ 2020.11.06

[BOJ] 17070. 파이프 옮기기 1

백준 문제 주소: www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 문제 : 파이프를 주어진 NxN배열에서 (0,0) -> (N-1,N-1) 까지 옮길 수 있는 방법의 수를 구하라. DP를 사용해서 푸는 문제였습니다. 처음엔 DFS로 풀었다가 14x14 배열까지는 답이 정상적으로 나오는데, 15x15 배열부터는 시간이 오래걸려서 시간초과가 뜹니다. 각 배열에 3차원의 DP를 사용하면 시간을 매우 단축하여 풀 수 있습니다. ※ dpdp(..

Study/BOJ 2020.10.14
반응형