https://www.acmicpc.net/problem/1495 문제의 범위가 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 였기 때문에 boolean[][] dp = new boolean[N + 1][M + 1]; 만큼 돌려도 충분히 시간에 들어온다. 이부분을 미리 캐치했다면 좀 더 유추하기 쉬웠지 않을까 싶다. 앞에 가능한 수를 미리 찾고 뒤에도 계속 찾기...import java.util.*;import java.lang.*;import java.io.*;public class Main { static int N, S, M; static int[] arr; public static void main(String[] args) throws I..