diff --git "a/LiiNi-coder/202511/30 BOJ \354\272\241\355\213\264 \354\235\264\353\213\244\354\206\234.md" "b/LiiNi-coder/202511/30 BOJ \354\272\241\355\213\264 \354\235\264\353\213\244\354\206\234.md" new file mode 100644 index 00000000..4867e399 --- /dev/null +++ "b/LiiNi-coder/202511/30 BOJ \354\272\241\355\213\264 \354\235\264\353\213\244\354\206\234.md" @@ -0,0 +1,35 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int N = Integer.parseInt(br.readLine()); + List tetra = new ArrayList<>(); + for(int k=1; ; k++){ + // 총알 개수 + int t = k * (k + 1) * (k + 2) / 6; + if(t > N) + break; + tetra.add(t); + } + int size = tetra.size(); + + + int[] dp = new int[N + 1]; + Arrays.fill(dp, Integer.MAX_VALUE); + dp[0] = 0; + for(int i = 0; i < size; i++){ + int t = tetra.get(i); + for(int x = t; x <= N; x++){ + if(dp[x - t] != Integer.MAX_VALUE){ + dp[x] = Math.min(dp[x], dp[x-t] + 1); + } + } + } + System.out.println(dp[N]); + } +} + +```