728x90 분류 전체보기379 [Spring] 프론트 컨트롤러 2 : 적용, 뷰 분리 프론트 컨트롤러 적용 과 뷰 분리 프론트 컨트롤러를 직접 만들어 보자. 프론트 컨트롤러 적용 전체적인 구조 ControllerV1 interface 인터페이스로 만든 이유 - 다형성으로 필요한 컨트롤러들을 구현한다. public interface ControllerV1 { void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; } MemberFormContrellerV1 앞서 구현한 기존로직과 동일하다. 다른점은 ControllerV1 을 상속받아 구현을 하였다. public class MemberFormControllerV1 implements ControllerV.. 2021. 10. 21. [Algorithm] Dynamic Programming 1 Dynamic Programming 기존에 계산된 값을 버리지 않고 가지고 있다가 필요할때 다시 사용한다 중복계산을 줄일때 사용한다. Memoization(Top-Down) 큰문제를 먼저 시도한뒤 안풀린 문제면 다시 작은 문제를 푼다. 재귀로 구현한다. 가독성이 증가한다 어렵다. 실재로 팔요한 문제 들만 푼다. Dynamic Programmig(Bottom-Up) 작은문제를 먼저 풀어 나가는 방식이다. 반복문으로 구현한다. 가독성이 떨어진다. 비교적 쉽다. 모든 작은 문제들을 전부 구해야 한다. Memoization 과 Dynamic Programmig 차이점? 사실 둘다 비슷하다 중간 결과를 저장해 다시 사용한다면 Memoization 하위문제를 풀어나가면서 큰 문제를 해결하면 DP 대표예제 Fibon.. 2021. 10. 20. [Algorithm] 뿌요뿌요(퍼즐게임) 뿌요뿌요(퍼즐게임) 일단 이것을 구현한 것은 코딩테스트를 보다 보면 퍼즐문제가 나오는 경우가 있다.. 연습삼아 구현해 보았다. 참고로 처음 구현해봐서 리팩토링이 많이 필요하다. 문제 한칸에 하나씩 하나의 블록을 놓는다. 이미 블록이 있으면 그위에 둔다. 쌓다가 3개 이상의 블록이 연결되는 순간 삭제한다. 분석 일단 3개가 필요해 보인다. 쌓는 로직. 삭제하는 로직. 리프레쉬 하는 로직. 구현 package algorithm; import java.awt.*; import java.util.ArrayList; class CandidatePoint { public CandidatePoint(int x, int y) { this.x = x; this.y = y; } private int x; private i.. 2021. 10. 19. [프로그래머스] 완주하지 못한 선수 문제 분석 List, Map 어떤걸로 풀어야 될까 고민을 해봐야 한다. 문제 분류가 Map 이기때문에 Map을 써야 하는데 왜 그럴까? List 로 구현하면 최소 탐색 시간이 O(N) 이 걸린다. 하지만 Map의 경우 Tree 구조를 가지고 있기 때문에 O(h) 트리의 높이 만큼 걸린다. 하지만 최악의 경우 N 이 걸리기도 한다. 그렇기 때문에 Map 을 쓰자 구현1 (효율성 실패케이스) import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; int index = 0; ArrayList completionList = new ArrayLis.. 2021. 10. 19. 이전 1 ··· 39 40 41 42 43 44 45 ··· 95 다음 728x90 반응형