1학년
![[백준, Java] 5557번 : 1학년](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5wPne%2FbtrGTwkcTDl%2FgDCmf8JyQyfgRgGUGIjX5K%2Fimg.gif)
[백준, Java] 5557번 : 1학년
🔗 문제 링크 https://www.acmicpc.net/problem/5557 😮 문제 해결 방법 처음부터 숫자를 더하거나 빼면서 그 값이 0이상 20이하가 되어야 한다. 완전탐색으로 문제를 풀기에는 경우의 수가 무수히 많기 때문에 DP를 이용한다. dp 배열의 사이즈는 마지막 숫자를 제외한 숫자의 개수, 0 - 20까지 경우의 수를 저장하게 dp[N-1][21]로 지정한다. 마지막 숫자는 수식의 = 이되기 때문에 마지막 숫자는 배열에서 제외한다. 배열에는 매 인덱스 별 계산한 결과값의 경우의 수가 저장되어있다. 따라서, N-1 인덱스까지 숫자의 인덱스를 옮겨가면서 이전 인덱스까지 결과값 0에서 20까지의 경우의 수 중 1번 이상 결과가 나온 값을 더하거나 빼준다. 더하거나 빼준 값이 다시 0이상 20..