본문 바로가기

전체 글79

[Spring] Filter, Interceptor Filter 1. 자바 서블릿에서 제공하는 기능 2. 톰캣(웹 컨테이너)에 의해 관리가 된다. 3. request를 받으면 DispatcherServlet으로 가기 전에 Filter가 수행되며, response를 보낼 때는 DispatcherServlet에서 Filter를 걸쳐 Client에게 가게 됩니다. 4. request, response 객체에 대한 조작이 가능합니다. 5. Client Filter DispatcherServlet 의 구조 Filter 구현 public class MainFilter implements Filter @Override public void init(FilterConfig filterConfig) throws ServletException { //필터를 생성할 때 실행.. 2022. 10. 21.
[백준 BOJ] 14501 퇴사(DP/자바) 문제 접근 방법 1. DP 2. 현재 일 수 + 상담에서 걸리는 시간(Ti)가 N+1보다 크면 퇴사하므로 상담을 할 수 없습니다. 따라서, 이에 대한 경우 0으로 세팅했습니다. 3. 1일을 선택하면 4일이 되어야 4일-1일 >= 3일이 되므로 4일 최대 금액은 4일 금액 + 1일 금액이 됩니다. 점화식 - 현재 일수에서 나올 수 있는 최대 금액 = Math.max(현재 일 수 금액, 현재 전까지에서 나올 수 있는 일수 금액 중 최대); - dp[i] = Math.max(dp[i], dp[j] + prices[i]) public class Main { public static void main(String[] args) throws NumberFormatException, IOException { Buff.. 2022. 10. 19.
[백준 BOJ] 14916번 거스름돈 (자바/DP) 문제 손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오. 접근 방법 1. DP 문제 2. 점화식 : dp[i] = Math.min(dp[i-2], dp[i-5) + 1 3. 초기화 dp[2] = 1(2원 짜리 하나를 사용하여 거슬러 줄 수 있으므로) dp[5] = 1(5원 짜리 하나를 사용하여 거슬러 줄 수 있으므로) dp[4] = 2(2원 짜리 2개로 거슬러 줄 수 있으므로) /* * boj 14916 거스름돈 * dp 문제 * */ public class Main_14916 { public static void main(String[] args) { Scanner.. 2022. 10. 18.
[백준 BOJ] 1149번 RGB 거리(자바/DP) 접근 방법 1. 조건에 따라 모든 집은 이웃의 색과 달라야 합니다. 2. 모든 칠해지는 경우의 수를 찾기 - 현재 빨간색으로 칠할 때 이전 집은 초록이거나 파랑이어야 합니다. - 현재 파란색으로 칠하는 경우 이전 집은 빨간색이거나 초록이어야 합니다. - 현재 초록색으로 칠하는 경우 이전 집은 빨간색이거나 파란색이어야 합니다. 따라서, 현재 색을 칠하기 위해서는 그 전 색깔 중에서 최소를 선택하면 됩니다. 현재 빨간 색을 칠하는 경우 이전 집은 초록이거나 파랑이어야하며 초록과 파랑 중 최소 비용을 선택하면 됩니다. 주의할 점 1. 처음으로 생각한 아이디어는 매번 최소 비용을 선택하는 방법입니다. 하지만, 이런 경우 이전 집까지의 최소 비용이 현재의 최소 비용을 보장하지는 않습니다. 따라서, 모든 칠해지는 .. 2022. 10. 17.