• [디자인패턴] 싱글톤 패턴(Singleton pattern)

    1. 싱글톤 패턴이란? 하나의 클래스(객체)를 한번만 생성 후 공유하여 사용하는 패턴 2. 싱글톤 패턴의 사용 예시 현실 세계에서는 프린터, 실제 프로그래밍에서는 주로 DB커넥터, TCP소켓통신과 같이 서버와 연결되는 객체에 주로 사용 3. 예시 코드 소켓클라이언트 객체 public class SocketClient { private static SocketClient socketClient = null; //자기 자신을 객체로 가진다. private SocketClient(){ //디폴트 생성자를 막아 getInstance 메소드로만 생성된 객체를 불러오도록 한다. } public static SocketClient getInstance(){ //해당 메소드를 통해서만 객체호출이 가능하도록 한다. if..

  • [디자인패턴] 디자인 패턴이란?

    1. 디자인패턴 자주 사용하는 설계패턴을 정형화하여 이를 유형별로 가장 최적의 방법으로 개발할 수 있도록 만든 패턴이다. 2. GOF(Gang of four) 디자인패턴 4명의 사람들이 이때까지 여러 개발자들이 사용하면서 쌓인 경험치를 통해 유용한 설계를 총 23개의 디자인 패턴으로 정리해둔 것이다. 3. 디자인패턴의 장단점 3-1. 장점 - 개발자간 원활한 의사소통 - 소프트웨어 구조 파악 용이 - 재사용을 통한 소요시간 단축 - 설계 변경 요청에 유연한 대처 가능 3-2. 단점 - 개발자의 디자인패턴에 대한 이해가 선행되어야함 - 초기 투자비용 증가 4. 디자인 패턴의 종류

  • [백준] 프린터 큐

    www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Que..

  • [LeetCode] 53. Maximum Subarray

    문제 링크 : leetcode.com/problems/maximum-subarray/ Maximum Subarray - LeetCode 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 주어진 배열 속 연속된 배열에서의 최대값을 찾는 문제이다. 일반적으로 생각할 수 있는 방법은 배열 전체 탐색법이다. 아래와 같이 모든 가능한 연속된 배열의 경우를 계산하여 최대값을 찾는 방법이다. def maxSubArrayLoop(self, nums: List[int]) -> int: maxval..

  • [프로그래머스] 이중 우선순위 큐

    문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합..