본문 바로가기

전체 글

(225)
[프로그래머스] 모음사전 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근방법 1. 모든 중복순열을 만든다  중복순열을 만들기 위해 product모듈을 사용한다 list(product(["A", "E", "I", "O", "U"], repeat = i)) 해당 product 코드를 1부터 5까지 하면 A, E, I, O ,U,(A,A), (A,E),( A,I)...(A,A,A), (A,A,E),( A,A,I)....(A,A,A,A)....(A,A,A,A,A)...인 중..
CQRS를 이용한 관심사 분리 CQRS(command query responsibility separation) 패턴이란?CQRS 패턴은 명령(Command)과 조회(Query)를 분리하여 성능과 확장성 및 보안성을 높일 수 있도록 해주는 아키텍처 패턴입니다. 요구 사항이 복잡해질수록 도메인 모델 역시 복잡해집니다. 데이터를 조회한 쪽에서는 현재의 복잡한 모델 구조의 데이터가 필요하지 않은 경우가 대부분이므로 조회 시의 모델과 데이터를 업데이트할 때의 모델을 다르게 가져가도록 하는 방식입니다. 조회는 CRUD에서 read 동작을 담당하는 요청을 뜻합니다. 리소스를 조회한 경과만을 반환하므로 시스템의 상태를 변경하지 않으며 부작용이 없습니다. 명령(command)은 create, update, delete 요청과 같이 시스템의 상태를 ..
[leetcode] House Robber - Python 문제링크https://leetcode.com/problems/house-robber/ LeetCode - The World's Leading Online Programming Learning PlatformLevel up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.leetcode.com 문제풀이 0과1을 초기memo로 지정해주고 이웃되지 않으면 되니까 -2 step만 확인해서 더해주면 되겠다고 생각하였습니다. class Solution: def rob(self, nums: List[int]) -> int: ..
클린 아키텍처 적용 이전에 CQRS 패턴으로 Command와 Query 로직을 분리해 보았습니다.프로젝트를 더 확장하기 전에 파일구조를 더 효율적으로 만들고 유지보수에 유리한 아키텍처 구조의 프로젝트로 만들고 싶었습니다. '클린 아키텍처'라는 좋은 아키텍처를 적용한 프로젝트를 만들어서 아키텍처 설계를 하면 현업에서도 대규모의 애플리케이션을 효율적으로 관리 할 수 있겠다는 생각이 들었습니다. 그럼 '클린 아키텍처'는 무엇이고 어떻게 구현하고 또 현재 프로젝트에서 어떻게 구현하게 되었는지 알아보겠습니다.. 클린 아키텍처클린 아키텍처는 의 저자 로버트 C.마틴이 제안한 아키텍처입니다. 클린 아키텍처는 전혀 새로운 아키텍처는 아니고 양파 아키텍처라고 불리던 아키텍처에서 발전한 것입니다. 소프트웨어를 여러 동심원 레이어로 나누고 각..
[leetcode] unique-paths - Python 문제링크 https://leetcode.com/problems/unique-paths/submissions/1179788926/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제풀이 m x n 크기의 grid에 로봇이 오른쪽이나 아래로만 이동합니다. 이때 가장 오른쪽 아래지점 즉 (m-1, n-1)지점으로 가는 모든 경우의 수의 path를 구하는 문제입니다..
[leetcode] min cost climbing stairs - Python 문제링크 https://leetcode.com/problems/min-cost-climbing-stairs/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제풀이 이번문제는 주어진 cost를 단계를 밟고 올라가 ( 1step or 2step ) 정상으로 가는 최소의 비용을 구하는 것입니다. 이때 cost의 마지막 또는 마지막 전 index까지만 가면 됩니다..
[leetcode] Climbing Stairs - Python 문제 https://leetcode.com/problems/climbing-stairs/submissions/1179719047/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제파악 이 문제는 계단을 올라가는데 각 칸수에 맞게 올라가는 경우의 수를 세는 것입니다.(1step or 2step) ex) 1칸은 1개의 방법 2칸은 1+1 , 2 두가지 방법 3..
[Leetcode] Group Anagrams - 파이썬 문제링크 https://leetcode.com/problems/group-anagrams/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 접근방법 해당문제는 입력받은 배열에서 철자가 같은 문자열끼리 묶어 이중배열로 return 해주는 문제였습니다. 10^4이라서 O(N)의 접근법이 필요합니다. 길이가 0과 1인 입력은 따로 처리를 해주었..