DP6 [백준] 11727 2*N 타일링 2 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 문제 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 내 풀이 2*1 , 1*2 , 2*2 타일로 채우는 방법의 수를 찾는 것 고로 2*n 블럭 만드는 경우의 수를 2* n-2 블럭에서 만드는 경우와 2* n-1 블럭에서 만드는 경우를 고려하여 dp를 만들었다. 그것을 수식으로 DP[n] = DP[n-1] + 2 * DP[.. TIL/SW&백준 문제 리뷰 2021. 7. 31. [백준] 11053 가장 긴 증가하는 부분 수열 11053번: 가장 긴 증가하는 부분 수열 (acmicpc.net) 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 내 풀이 DP 로 해결할 생각까진 했지만, .. TIL/SW&백준 문제 리뷰 2021. 7. 29. [백준] 11052 카드 구매하기 11052번: 카드 구매하기 (acmicpc.net) 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 문제 요즘 민규네 동네에서는 스타트링크에서 만든 PS카드를 모으는 것이 유행이다. PS카드는 PS(Problem Solving)분야에서 유명한 사람들의 아이디와 얼굴이 적혀있는 카드이다. 각각의 카드에는 등급을 나타내는 색이 칠해져 있고, 다음과 같이 8가지가 있다. 전설카드 레드카드 오렌지카드 퍼플카드 블루카드 청록카드 그린카드 그레이카드 카드는 카드팩의 형태로만 구매할 수 있고, 카드팩의 종류는 카드 1개가 포함된.. TIL/SW&백준 문제 리뷰 2021. 7. 28. 210707 DP - 배낭 문제 (Knapsack Problem) 배낭 문제 (0/1 Knapsack Problem) 배낭 문제란 배낭에 담을 수 있는 무게의 최대값이 정해져 있고, 일정한 가치와 무게가 정해져있는 짐들을 배낭에 닮을 때, 가치의 합이 최대가 되도록 짐을 고르는 방법을 찾는 문제이다. 0/1 knapsack = 물건 못 쪼갬 Fraction knapsack = 물건 쪼갤 수 있는 문제 사실 kanpsack 문제는 dp에 있어야... 예시 문제 해결법 시간 복잡도 , 공간복잡도 미가공 필기(알고리즘) 2021. 7. 8. 210706 동적 계획법(DP) 2- LCS ,OBST LCS ( Longest Common Subsequence) - 최장 공통 부분수열, 문자열 를 DP로 해결 LCS의 예시) 목표: 부분수열이기에 중간에 맞지 않다면 문자 사이를 건너뛰어 공통되면서 가장 긴 문자열을 찾는 것 해결법 : 를 다시 정리하면 문자열 X, 문자열 Y의 한 글자씩 비교 두 문자가 같다면 LCS[i - 1][ j - 1 ] +1 두 문자가 다르다면 LCS[i - 1][ j ] 와 LCS[ i ][ j - 1 ] 중 큰 값 표시 1 ~ 3 번 과정 반복 앞서 예로 들었던 malestrom 과 becalm 으로 과정을 보이면 한 단어를 기준으로 잡고 한 글자씩 잡고 위의 점화식대로 테이블을 채워나간다 예를 들어 b를 기준으로 잡고 m,a,l,e....m 까지 검사 이 경우 문자가 같은.. 미가공 필기(알고리즘) 2021. 7. 7. 210705 동적 계획법(Dynamic Programming, DP) 동적 계획법(Dynamic Programming, DP) vs 분할 정복법(Divide and Conquer) 문제를 분할하여 작은 문제로 만들어 해결한 후 합쳐서 문제 해결하는 것은 동일 동적 계획법은 서브 문제들 간의 관계가 존재하여 overlapping (작은 문제들이 중복되는 일) 발생 => 작은 문제들의 결과 저장하여 다시 계산하는 일 생략 서브 문제들간의 overlapping 없음 최적 부분구조(Optimal Substructure) 전체 문제가 최적(optimal)구조가 되려면 그 서브 문제들도 최적화 된 솔루션으로 해결가능 해야 함. => 문제를 해결할 때 서브 문제들을 해결하여 그 결과들을 이용하여 최종적인 답 구함 이러한 구조를 가진 문제로 대표적인 예가 최단 경로 문제 피보나치 210.. 미가공 필기(알고리즘) 2021. 7. 6. 이전 1 다음 반응형