일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자료구조
- array
- leetcode
- HeadFirstDesignPatterns
- 후니의쉽게쓴시스코네트워킹
- 동적계획법
- IT기초
- 코딩테스트
- 사회초년생
- 네트워크
- 정보처리기사개정
- 회사폐업
- 실업인정인터넷신청
- 캡쳐링
- 전화영어
- C++
- 막대기자르기
- 자취준비
- 취업사실신고
- 튜터링
- 모여봐요동물의숲
- 정보
- 후니의쉽게쓴시스코라우팅
- 청년내일채움공제
- 실업급여
- 부분합알고리즘
- 프로그래머스
- 생애첫계약
- 순열
- 알고리즘
- Today
- Total
목록프로그래밍 (78)
따봉도치야 고마워
커맨드 패턴 커맨드 패턴을 이용해 요청 내역을 객체로 캡슐화 할 수 있고, 매개변수를 사용해 여러 가지 다른 요청을 집어 넣을 수 있다. 또한 요청 내역을 큐에 저장하거나 로그로 기록할 수 있고, 작업취소 기능도 지원이 가능하다. 요청을 하는 객체와(요청), 그 요청을 수행하는 객체(동작)를 분리 할 수 있음. 리시버에 대한 동작이 추가될 때마다 잡다한 클래스가 많이 추가될 수 있다는 단점이 있음. 요청 자체를 리시버한테 넘기지 않고 자신이 처리하는 '스마트' 커맨드 객체도 종종 사용 커맨드 패턴 구조 수신자 (Receiver) : 실제 행동을 하는 객체 커맨드 (Command) : 리시버와 리시버의 특정 행동을 호출하는 객체, 버튼에 할당될 행위 발동자 (Invoker) : 커맨드를 저장해놓고, 행위 ..
싱글턴 패턴 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴 싱글턴은 제한된 용도로 특수한 상황에서 사용해야함. 남용 x 전역변수 사용 시 단점 전역변수에 객체를 대입하면 어플리케이션 시작 시 객체가 생성됨(플랫폼마다 다르지만) 만약 그 객체가 자원을 많이 차지하는데 아무도 쓰지 않는다면 아무데도 쓸데없는 객체가 되어버림. 고전적인 싱글턴 패턴 구현법 생성자를 private 으로 선언하고, 클래스의 인스턴스를 생성해 리턴해주는 정적 메소드를 만듦 public class Singleton{ private static Singleton uniqueInstance; private Singleton() {} //생성자를 private으로 선언..

팩토리 패턴 팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 함. 클래스의 인스턴스를 만드는 일을 서브 클래스에 맡김 모든 팩토리 패턴에서는 객체 생성을 캡슐화한다. 팩토리 메소드 패턴에서는 서브클래스에서 어떤 클래스를 만들지 결정하게 함으로 객체 생성을 캡슐화한다. Creator 클래스 : 생산자 클래스, 팩토리 메소드를 정의/구현한다. ex) PizzaStore(추상), NYPizzaStore(구상) Product 클래스 : 팩토리 메소드에서 생산하는 제품 추상 팩토리 패턴에서는 인터페이스를 이용해 서로 연관/의존하는 객체를 구상 클래스를 지정하지 않고도 생성할 수 있음 클라이언트에서 추상 인터페이스를 통해 일련의 제품을..
데코레이터 패턴 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해 기능을 유연하게 확장하는 방법을 제공한다. 데코레이터의 수퍼클래스 == 자신이 장식하고 있는 객체의 수퍼클래스 -> 원래 객체가 들어갈 자리에 데코레이터 객체를 넣어도 상관 없음 한 객체를 여러개의 데코레이터로 감쌀 수 있음 데코레이터는 자신이 장식하는 객체에게 어떤 행동을 위임하는 것 외에 원하는 추가 작업을 수행 가능 객체는 언제든 감쌀 수 있기 때문에 실행중에 마음대로 적용 가능 장단점? 장점 : 하나의 객체에 추가해야될 기능들이 다양하고 일정하지 않을 때 효율적 단점 : 데코레이터 클래스가 너무 많아져 코드가 복잡해질 수도 스타버즈 예제 - 상속을 사용하면 서브 클래스가 매우 많아지거나, 일부 서..
옵저버 패턴(Observer Pattern) 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고, 자동으로 내용이 갱신되는 방식 일대다 의존성을 정의 Subject와 Observer 인터페이스를 각각 구현 - WeatherData(Subject), Displays(Observer) Subject엔 옵저버 등록, 삭제, 알림 메소드 필요 옵저버는 update() 메소드 구현. - update(온,습,압) + 옵저버한테 연락이 가는 순서에 의존해서 코딩하면 안 됨. 자바 내장 옵저버 패턴 - 푸시 방식뿐만 아니라 풀 방식으로 갱신 가능 - Subject가 아니라 Observable 클래스 상속받아 사용 - WeatherData(extends Observable) - 옵저버 객체에선 위 ..

문제 설명 programmers.co.kr/learn/courses/30/lessons/43105?language=java# 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요...
디자인 패턴 소개 모든 패턴은 '시스템의 일부를 다른 부분과 독립적으로 변화시킬 수 있는' 방법을 제공하기 위한 것 디자인 원칙 애플리케이션에서 달라지는 부분을 찾고, 달라지지 않는 부분으로부터 분리한다. 구현이 아닌 인터페이스에 맞춰 프로그래밍한다. //여기서 인터페이스는 중의적 의미로 '상위 형식'을 의미함 상속보다는 구성을 활용한다. 스트래티지 패턴(Strategy Pattern) : SimUDuck 예제 - fly(), quack() 메소드를 슈퍼 클래스에 정의 시 : 해당 기능이 없어야 하는 서브 클래스는 매번 재정의 해줘야 함 - flyable, quackable 인터페이스를 서브 클래스에서 구현하도록 하면 : 코드 중복 발생 *패턴 적용 - 슈퍼 클래스에선 FlyBehavior, QuackB..

문제 설명 programmers.co.kr/learn/courses/30/lessons/62048?language=go 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 �� programmers.co.kr 가로길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자 칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭짓점 2개를 ..