본문 바로가기

분류 전체보기160

동전 바꿔주기(DFS) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/P97f 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 내 풀이 (정답 아님) #내 풀이 def DFS(L, sum): global cnt if sum > T: return if sum == T: cnt += 1 return if L == k: return else: for i in cn: for j in range(i+1): DFS(L+1, sum+cv[L]) DFS(L+1, sum) if __name__ == "__main__": cv = [] cn = [] T = int(inpu.. 2022. 4. 5.
휴가(DFS) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/7EX2 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 강의 풀이 #강의 풀이 def DFS(L, sum): global res if L == n+1: if sum > res: res = sum else: if L+T[L] 2022. 4. 5.
유연한 컨트롤러1 v5, 유연한 컨트롤러2 v5 유연한 컨트롤러1 - v5 만약 어떤 개발자는 ControllerV3 방식으로 개발하고 싶고, 어떤 개발자는 ControllerV4 방식으로 개발하고 싶다면 어떻게 해야할까? 어댑터 패턴 지금까지 우리가 개발한 프론트 컨트롤러는 한가지 방식의 컨트롤러 인터페이스만 사용할 수 있다. ControllerV3 , ControllerV4 는 완전히 다른 인터페이스이다. 따라서 호환이 불가능하다. 마치 v3는 110v이고, v4는 220v 전기 콘센트 같은 것이다. 이럴 때 사용하는 것이 바로 어댑터이다. 어댑터 패턴을 사용해서 프론트 컨트롤러가 다양한 방식의 컨트롤러를 처리할 수 있도록 변경해보자. V5 구조 핸들러 어댑터: 중간에 어댑터 역할을 하는 어댑터가 추가되었는데 이름이 핸들러 어댑터이다. 여기서 어댑.. 2022. 4. 5.
최대점수 구하기(DFS) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/aaLB 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 내 풀이 (정답 아님) #내 풀이 def DFS(L, sum, time): global res if total-sum < res-sum: return if L == n: if time res: res = sum else: for i in range(n): DFS(L+1, sum+s[i], time+t[i]) DFS(L+1, sum, time) if __name__ == "__main__": s = [] t = [] n, m = m.. 2022. 4. 4.
Model 추가 - v3, 단순하고 실용적인 v4 Model 추가 - v3 서블릿 종속성 제거 컨트롤러 입장에서 HttpServletRequest, HttpServletResponse이 꼭 필요할까? 요청 파라미터 정보는 자바의 Map으로 대신 넘기도록 하면 지금 구조에서는 컨트롤러가 서블릿 기술을 몰라도 동작할 수 있다. 그리고 request 객체를 Model로 사용하는 대신에 별도의 Model 객체를 만들어서 반환하면 된다. 우리가 구현하는 컨트롤러가 서블릿 기술을 전혀 사용하지 않도록 변경해보자. 이렇게 하면 구현 코드도 매우 단순해지고, 테스트 코드 작성이 쉽다. 뷰 이름 중복 제거 컨트롤러에서 지정하는 뷰 이름에 중복이 있는 것을 확인할 수 있다. 컨트롤러는 뷰의 논리 이름을 반환하고, 실제 물리 위치의 이름은 프론트 컨트롤러에서 처리하도록 단.. 2022. 4. 4.
프론트 컨트롤러 패턴과 도입 - v1, View 분리 - v2 프론트 컨트롤러 도입 전 프론트 컨트롤러 도입 후 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 입구를 하나로 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 프론트 컨트롤러 도입 - v1 프론트 컨트롤러를 단계적으로 도입해보자. 이번 목표는 기존 코드를 최대한 유지하면서, 프론트 컨트롤러를 도입하는 것이다. 먼저 구조를 맞추어두고 점진적으로 리펙터링 해보자. ControllerV1 (interface) 서블릿과 비슷한 모양의 컨트롤러 인터페이스를 도입한다. 각 컨트롤러들은 이 인터페이스를 구현하면 된다. 프론트 컨트롤러는 이 인터페이스를 호출해서 구현과 관계없이 .. 2022. 4. 3.