Static Factory Method Pattern
·
📚 Data Architect/Design Pattern
💡 Static Factory Method Pattern Static Factory Method Pattern의 장점 Constructor Chaning으로 발생될 문제 방지 이름 설정 가능 -> 반환될 객체의 특성을 더 자세하게 묘사 불필요한 객체 생성 방지 -> 만들어놓거나 새로 만든 객체를 캐싱하여 재활용하는 방식 사용 서브 클래스 반환 -> 반환할 객체의 클래스를 유연하게 선택 파라미터에 따라 매번 다른 타입의 객체 반환 반환할 객체 클래스(구현체)가 없어도 됨 Static Factory Method Pattern의 단점 Sub Classing의 어려움 Documentation 불명확한 API로 인해 개발자가 일일이 인스턴스화 할 방법을 찾아야함 Static Factory Method Patter..
Builder Pattern
·
📚 Data Architect/Design Pattern
💡 빌더 패턴 Builder Pattern을 사용하는 이유 필요한 데이터만 설정 가능 유연성 가독성 변경 가능성의 최소화 Builder Pattern을 사용 안했을때 생기는 문제점 Entity의 필드에 변경사항이 생길 때, 생성자 & 정적 팩토리 메소드의 파라미터 수정 작업 필요 가독성 ↓ 유연성 ↓ 불필요한 변경 가능성 최소화가 안됨으로 인한 Setter 메서드 사용 & 객체 불변성 확보에 불리함 Builder Pattern 사용 예시 아래 코드에서 Builder Pattern의 장점 필요에 따른 각각 다른 객체 생성 시, 객체 생성의 유연함 필요에 따른 Entity 필드의 추가 & 수정 작업 필요 시의 편리함 Entity의 원본 필드에 final을 추가함으로써 객체 불변성 확보 (Setter 사용 지..
고득점 Kit - Stack & Queue (다리를 지나는 트럭)
·
📚 Data Architect/Programmers
💡 문제 파악 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5,6] 4 [7] [4..
고득점 Kit - 완전탐색 (모의고사)
·
📚 Data Architect/Programmers
💡 문제 파악 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를..
고득점 Kit - 완전탐색 (최소 직사각형)
·
📚 Data Architect/Programmers
💡 문제 파악 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. ..