본문 바로가기

BOJ 5721 - 사탕 줍기 대회 문제 링크(Link)https://www.acmicpc.net/problem/5721 문제 해결 (Solution) 1. i번 째 행은 i+2행과는 아무 상관이 없다. i행의 열 중에서 서로 인접하지만 않으면 된다. 2. 1의 조건을 만족시키는 DP table을 생각해보면, 행에 대한 DP와 열에 대한 DP를 따로 만들어 해결하는 게 편함. 3. dp1[i] = i행에서의 최대값. dp2[j] = i행에서 열들을 선택했을 때의 가장 큰 값. 주의할 점 || 생각해볼 점(Caution || Consideration) 1. 처음엔 행과 열을 따로 생각할 수 있다는 생각을 하기 어렵다. 이런 유형이 있다는 것을 알아야한다. 2. 행과 열의 크기가 주어지지 않으므로, 그냥 1차원 배열로 생각하고 인덱스를 잘 다.. 더보기
BOJ 11578 - 팀원 모집 문제 링크https://www.acmicpc.net/problem/11578 문제 해결 1. N(사람의 수)와 M(문제의 수)가 최대 10이므로 비트마스크 DP를 사용해서 문제 해결. 2. dp[a][b] = a만큼의 사람이 b만큼 문제를 풀었을 때의 최소 사람. 주의할 점 || 생각해볼 점 - 참고 - ※ 정확하고 부드러운 태클은 언제나 환영입니다. 더보기
BOJ 2411 - 아이템 먹기 문제 링크https://www.acmicpc.net/problem/2411 문제 해결 1. 아이템을 모두 먹고 (1, 1)에서 (N, M)까지 이동하는 경우의 수를 구하는 문제. DP로 문제 해결. 2. dp[i][j][k] = (i-1, j-1)에서 k개의 아이템을 가지고 있을 때, 위의 1번을 만족하는 경우의 수. 주의할 점 || 생각해볼 점 1. 위치를 나타낼 때, 왼쪽 아래를 (1, 1)로 지정한다. 행을 뒤집어서 생각하면 수월하게 문제를 해결할 수 있다. 이 때, 움직일 수 있는 방향이 {오른쪽, 위} 에서 {오른쪽, 아래}로 바뀐다. 참고 - ※ 정확하고 부드러운 태클은 언제나 환영입니다. 더보기