본문 바로가기

전체 글539

[Design Pattern] (Structural) 모듈 패턴(Module Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Structural Design Pattern] 모듈 패턴(Module Pattern) 모듈 패턴은 특정 구성요소를 다른 구성요소와 독립적으로 유지하는 패턴을 말한다. 장점: 재사용성을 높히기 위한 코드를 작성할 때 유용하다 단점: 코드가 길어지고 파일 크기도 늘어난다 Module 패턴 JavaScript에서의 모듈은 특정 구성요소를 다른 구성요소와 독립적으로 유지하는데 가장 널리 사용되는 디자인 패턴입.. 2023. 3. 27.
[Design Pattern] (Creational) 프로토타입 패턴(Prototype Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Creational Design Pattern] 프로토타입 패턴(Prototype Pattern) prototype 디자인 패턴은 다른 객체의 프로토 타입 역할을하는 객체를 만드는 프로토 타입 상속을 기반으로한다고 생각할 수 있다.프로토타입 패턴은 객체를 효율적으로 생성하는 방식으로 객체의 템플릿을 기반으로 새로운 객체를 만들 수 있다. 프로토타입 개체 자체는 생성자가 만드는 각 개체의 청사진으로 효과적.. 2023. 3. 26.
[Design Pattern] (Creational) 생성자 패턴(Constructor Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Creational Design Pattern] 생성자 패턴(Constructor Pattern) 애플리케이션이 복잡해질수록 모듈화가 필요하다. 자바스크립트도 객체로 비슷한 속성과 행위를 묶어서 모듈화 할 수 있다. 이렇게 좀 더 객체지향적인 방법으로 표현하는 방법을 생성자(constructor) 패턴을 통해 이해해보자. 먼저, 자바스크립트의 객체는 객체 리터럴로 쉽게 표현할 수 있다. 객체 리터럴 va.. 2023. 3. 26.
[Design Pattern] (Creational) 팩토리 패턴(Factory Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Creational Design Pattern] 팩토리 패턴(Factory Pattern) 팩토리 패턴은 비슷한 객체를 공장에서 찍어내듯이 반복적으로 생성할 수 있게 하는 패턴이다. 객체를 생산하는 공장(Factory)을 구현하는 방법이라고 생각하면 된다. 개발자가 컴파일 시점에서 어떤 객체(구체적인 타입, 클래스)를 생성해야될지 모르고, 런타임 환경에서 동적으로 객체를 생성해야 할 때도 사용한다. 팩토.. 2023. 3. 26.
[Design Pattern] (Creational) 싱글톤 패턴(Singleton Pattern) 디자인 패턴 유형 Creation Design Pattern 객체의 생성에 관련된 패턴 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다. Strutural Design Pattern 클래스와 객체의 구성에 관련된 패턴 Behavioral Design Pattern 객체와 객체 간의 통신에 관련된 패턴 [Creational Design Pattern] 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴은 전체 시스템에서 클래스에 대한 인스턴스가 하나만 존재하도록 보장하는 '객체 생성' 패턴이다. 싱글톤 패턴을 사용하면 고정된 메모리 영역에 인스턴스 하나만을 사용하기 때문에 메모리 낭비를 방지할 수 있다. 또한, 싱글톤으로 만들어진 인스턴스는 전역이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유.. 2023. 3. 26.
[Programmers] (2020 KAKAO BLIND RECRUITMENT) Lv 2. 문자열 압축 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(s) { let answer = s.length; for (let i = 1; i 1 ? cnt : "")}${word}`; (cnt = 1), (word = temp); if (idx >= s.length) str += temp; } } if (cnt > 1) str += `${cnt}${word}`; answer = Math.min(str.length, answ.. 2023. 3. 26.
[Algorithm] (알고리즘 패턴) Frequency Counters(빈도수 세기) Frequency Counter(빈도수 세기) 알고리즘 패턴 이 패턴은 말 그대로 객체 또는 Set을 사용하여 특정 문자열, 배열 등의 값 / 값의 빈도를 수집해 풀어내는 방식이다. 프로세스 주어진 배열 속 요소의 빈도를 확인할 때, 방식 Worst : 중첩 루프 for문 안에서 indexOf를 사용 -> O(n^2) for A 순회 B.indexOf(n) 찾아서 삭제 없으면 return false 순회 마쳤으면 return true Best : 객체 사용 for문을 3번 반복하여 3n. 즉 -> O(n) A 순회해서 {요소: 개수, ...} 객체 만듬 B 순회해서 {요소: 개수, ...} 객체 만듬 A객체의 key 순회해서 B객체 값과 비교 같지 않으면 return false 순회 마쳤으면 return.. 2023. 3. 25.
[Daily Scrum] Meet 13. 2023-03-24 금요일 시간 : 22:00 ~ 22:30 진행 내용 : Todo list 공유, 내일 학습 계획 공유, 팀원간 소통 개인 학습 내용 : 프로그래머스 1문제(Lv. 2) 풀이 알고리즘 패턴(투 포인터, 슬라이딩 윈도우), 디자인 패턴, 유클리드 호제법 학습 2023. 3. 24.
[Algorithm] (알고리즘 패턴) 투 포인터(다중 포인터) 투 포인터(Two Pointers. 다중 포인터) 알고리즘 패턴 두 개 또는 그 이상의 포인터를 두고 값들을 비교하여 문제를 해결하는 알고리즘 패턴이다. 배열이나 문자열같은 선형 구조에서 각자 다른 원소를 가리키는 2개의 포인터를 조작해가면서 원하는 것을 얻어내는 개념이다. 정렬되어있는 두 리스트의 합집합에도 사용됨. 병합정렬(merge sort)의 counquer 영역의 기초가 되기도 한다. 프로세스 그냥 기본 방식인 탐색(반복문)을 쓰다 보면 시간이 오래 걸리거나 시간 초과가 걸리는 경우에 투 포인터를 사용하면 메모리와 시간 효율성을 높일 수 있다. 시간복잡도 : O(N). 기본 탐색 반복문을 사용한다면 O(N^2) 투 포인터는 2가지 방식이 있다. 앞에서 시작하는 포인터와 끝에서 시작하는 포인터 빠.. 2023. 3. 24.
[Programmers] (Summer/Winter Coding(2019)) Lv 2. 멀쩡한 사각형 https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 직사각형의 대각선이 가로지르는 사각형들은 일정한 패턴이 반복된다. 이 패턴이 반복되는 횟수가 가로 세로의 GCD -> GCD(12, 8) = 4 - 이 패턴의 가로 세로 길이가 각각 w / gcd, h / gcd 이다. -> 8 / 4 = 2, 12 / 4 = 3 - 대각선이 지나는 칸은 한줄에 1칸 ~ 2칸 존재할 수 있다. - 대각선이므로 세로줄기준 최소 1칸은 차지할수 밖에 없다. -> .. 2023. 3. 24.