본문 바로가기
반응형

DP2

[알고리즘] 합분해 (DP-GoldⅤ) 목적 : dp 테이블 손으로 써서 푸는 습관을 들이기 위해서 ​ 문제 설명(요약) : 0~N까지의 숫자 중 K개를 택해서 택한 숫자의 합이 N이 되는 경우의 수를 구하기 조건 -> 중복 허용, 숫자 위치만 바꾼 것은 다른 경우로 count ​ 해결 전략: 1. 머리로 풀다가 이차원 dp형태로 풀어야 겠다 싶어 손으로 풀기 시작 2. 1~6까지의 경우의 수를 직접 구해봄 (조합,순열) 3. 피보나치 수열 인줄 알았는데 단순 대각선 합이였음 4. 점화식 세움 5. 끝 ​ 직접 그려본 dp 테이블 : 점화식 : dp[i][j] = dp[i-1][j] + dp[i][j-1] ​ 2023. 3. 18.
[알고리즘] 가장 긴 증가하는 바이토닉 부분 수열 (DP-Gold IV) 목적 : 다른사람의 매우 직관적인 풀이를 복습하기 위해서 ​ 문제 설명(요약) : 증가 or 감소 , 증가+감소, 감소+증가 의 특징을 가진 바이토닉 수열 중에서 가장 긴 수열을 찾아 길이를 구하면 되는 문제 ​ 나의 시도 : 1. 가장 긴 증가 or 감소 수열에서 기울기 부호가 바뀌는 지점의 인덱스를 구해 그 후 가장 긴 반대 수열 길이 더하기 ​ 깨달은 것: 가장 긴 증가 수열이 아니더라도 가장 긴 바이토닉 수열이 될 수있다. 반대의 경우도 마찬가지 ​ 해결 전략: dp 배열에는 해당 인덱스 값마다 최대 길이가 들어있으므로 해당 시점에서의 증가수열길이 + 감소수열길이 -1 을 해주면 된다. 단 감소 수열은 top-down 방식으로 증가 수열의 길이를 할당 해줘야 겹치는 부분에서 길이 합을 구할 때 제.. 2023. 3. 18.
반응형