전체 글

개발 내용과 지식을 정리한 블로그입니다.
팩토리 메서드 패턴 어떤 클래스에 대한 인스턴스를 생성할 때 그에 대한 책임과 권한을 서브클래스에게 위임하는 패턴이다. 클라이언트에서 직접 new 키워드를 사용하여 생성하는 것이 아닌 객체 생성 전용 팩토리 클래스를 호출하고, 어떤 객체를 만들지 결정하는 서브 팩토리 클래스를 통해 객체를 생성한다. 구조 Product - 팩토리 메서드가 생성하는 객체의 인터페이스. ConcreteProduct - Product 클래스에 정의된 인터페이스를 실제로 구현한 서브클래스. Creater - Product 타입의 객체를 반환하는 팩토리의 인터페이스. Product 객체의 생성을 위해 호출한다. ConcreteCreater - ConcreteProduct 객체를 생성하는 코드의 구체적인 구현이 되어있는 서브클래스...
문제 링크 성능 요약 메모리: 0.0 MB, 시간: 0.00 ms 구분 코딩테스트 연습 > Summer/Winter Coding(~2018) 채점결과 정확성: 70.5 효율성: 29.5 합계: 100.0 / 100.0 제출 일자 2023년 10월 5일 18:0:56 문제 설명 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5g 기지국은 4g 기지국보다 전달 범위가 좁아, 4g 기지국을 5g 기지국으로 바꾸면 어떤 아파트에는 전파가 도달하지 않습니다. 예를 들어 11개의 아파트가 쭉 늘어서 있고, [4, 11] 번째 아파트 옥상에는 4g 기지국이 설치되어 ..
문제 링크 성능 요약 메모리: 4.56 MB, 시간: 25.57 ms 구분 코딩테스트 연습 > 2023 KAKAO BLIND RECRUITMENT 채점결과 정확성: 100.0 합계: 100.0 / 100.0 제출 일자 2023년 10월 4일 17:14:48 문제 설명 당신은 이진트리를 수로 표현하는 것을 좋아합니다. 이진트리를 수로 표현하는 방법은 다음과 같습니다. 이진수를 저장할 빈 문자열을 생성합니다. 주어진 이진트리에 더미 노드를 추가하여 포화 이진트리로 만듭니다. 루트 노드는 그대로 유지합니다. 만들어진 포화 이진트리의 노드들을 가장 왼쪽 노드부터 가장 오른쪽 노드까지, 왼쪽에 있는 순서대로 살펴봅니다. 노드의 높이는 살펴보는 순서에 영향을 끼치지 않습니다. 살펴본 노드가 더미 노드라면, 문자열 ..
객체지향 언어를 사용하는 프로그래머들은 언제나 객체지향 프로그래밍, 객체지향적 소프트웨어를 설계해야 한다. 그렇다면 객체지향 프로그래밍이란 무엇일까? 객체지향 프로그래밍이란 프로그램을 하나의 덩어리가 아닌 수많은 객체(Object)로 나누고, 이러한 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 기법이다. 객체들을 모아 하나의 기능을 가진 컴포넌트(Component)를 구성하고, 컴포넌트 간의 상호작용을 통해 더 큰 시스템을 만들고, 더 나아가 컴포넌트를 재사용함으로써 더 효율적이고 유연한 프로그램을 만들 수 있는 게 큰 장점이다. 하지만 안타깝게도 우린 객체지향 언어를 배웠지만 유연하고, 근사하며, 재사용 가능한 객체지향 소프트웨어를 설계할 줄 모른다. 다형성도 알고, 캡슐화도 알고, 추상화도..
NewtronVania
Newtron의 프로그래밍 블로그