1. 디자인 패턴 소프트웨어 공학의 소프트웨어 설계에서 공통적으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다. 개발의 효율성과 유지보수성 등의 품질이 높아지며, 프로그램의 최적화에 도움이 된다. 2. 디자인 패턴 구성 요소 패턴의 이름 문제 및 배경 솔루션 사례 결과 샘플 코드 3. 디자인 패턴 유형 1) 목적 : 생성 / 구조 / 행위 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴 구조 : 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴 행위 : 클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴 2) 범위 : 클래스 / 객체 4. 디자인 패턴 종류 i ) 생성 패턴 Builder 생산 단계를 캡슐화 ..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.1. 객체 지향 개념 : 실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현하는 기법이다. 2. 객체 지향 구성요소 클래스 (Class) - 객체 지향 프로그램에서 데이터를 추상화 하는 단위 - 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현 - 속성은 변수의 형태로 행위는 메서드 형태로 선언 객체 (Object) - 객체의 행위는 클래스에 정의된 행위에 대한 정의를 공유함으로써 메모리를 경제적으로 사용 - 객체마다 각각의 상태와 식별성을 가짐 메서드 (Method) - 클래스로부터 생성된 객체를 사용하는 방법 - 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산 - 전통적 시스템의 함수 또는 프로시저에 해당하는 연산 기능 인스턴스 (Instance) - 객체지향 기법에서 클래..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 유형 : 구현 , 완전 탐색 1. 치킨집들 중에서 m개의 치킨집을 고르는 모든 경우를 구하기 위해서 combinations() 함수를 사용한다 2. m개의 치킨집 고르는 경우의 도시치킨거리를 구하기 위한 함수 check_sum을 정의한다. home에 저장한 모든 집의 좌표를 확인하면서 각각의 집에서 가장 가까운 치킨집과의 거리를 구하여 모두 더해준다. # 치킨 배달 from ..

https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 유형 : 구현 , 완전 탐색 dist의 길이가 8로, 8! 을 해도 10만을 넘지 않는다. 따라서 완전 탐색으로 풀어도 가능하다. 1. 원을 리스트로 바꿔서 생각하기 예시 2의 취약 지점을 원에 표현하면 다음과 같다. 원형일 경우 0 지점을 넘어갈때 계산이 불편하므로, 이를 일직선 상에 놓는다. 각각의 지점에 n 만큼을 더해주면 한바퀴 돈 다음의 position..

1. 물리 요소 조사 분석 (1) 스토리지 [DAS/NAS/SAN] 1. 스토리지(Storage) : 데이터를 보존하고 가능한 한 간편하게 액세스 할 수 있도록 개발된 기술을 사용하여 정보를 보존하는 저장장치 2. 스토리지 구성 1) DAS(Direct Attached Storage) - 데이터 서버와 외장형 저장장치를 전용 케이블로 직접 접속하는 방식 장점 : 전용라인의 사용으로 주어진 성능이 보장되며 안전성이 뛰어나다 단점 : 저장장치에 따른 접속 방법이 서로 상이하여 저장 장치 공유에 문제가 있음 2) NAS(Network Attached Storage) - NAS는 LAN을 통해 스토리지와 서버를 접속하는 방식. 파일 서버를 통한 파일 시스템을 공유한다. 장점 : 데이터 저장장치와 서버간의 독립성..
1. B를 A로 만들어보자! 나는 B->A로 만드는 방법을 떠올렸다 B에서 2로 나눠지면 나누고, B의 맨 마지막 숫자가 1이면 1을 떼어주고, 2로 나눠지지 않고 마지막 숫자 (10으로 나눴을 때 나머지)가 1이 아니면 -1 을 리턴 + 그런데 여기서, B는 항상 A보다 커야한다 ! 즉 B < A 인 값이 나와도 -1을 리턴한다 a, b = map(int, input().split()) count = 1 while True: if b == a: break elif (b % 2 != 0 and b%10 != 1) or (b < a): count = -1 break else: if b%10 == 1: b //= 10 count += 1 else: b //= 2 count += 1 print(count) 2..

enumerate(iterable한 객체, start=0) enumerate는 파이썬 내장함수로, 반복문에서 사용되어 인덱스와 iterable한 객체의 데이터가 묶인 튜플을 반환한다. 여기서 iterable의 의미: member를 하나씩 차례로 반환 가능한 object를 말한다. iterable한 데이터 타입의 예로는, list, str, tuple이 있다. enumerate 의 파라미터는 iterable한 원소와 index이다. index는 생략가능하며, 지정해주지 않을 경우에 0부터 시작한다. 다음과 같이 for문의 인자를 하나만 설정해주면, 결과값으로 튜플이 반환된다. data = ['A', 'B', 'C'] # iterable한 list for i in enumerate(data): print(i..
Question 1 def maxCost(cost, labels, dailyCount): # Write your code here total = 0 result = [] count = 0 # count the legal laptop n = len(cost) for i in range(n): if labels[i] == "legal": count += 1 total += cost[i] if count == dailyCount: result.append(total) total = 0 count = 0 else: total += cost[i] if len(result) == 0: return 0 else: return max(result) Question 2 def mostBalancedPartition(pa..