본문 바로가기

문법13

[Java] Template Method/Factory Method/Strategy/Template Callback 패턴 Template Method 패턴 " 하위 클래스에서 구체적으로 처리해라 " 상위클래스 : 템플릿에 해당하는 메소드가 정의, 정의 안에는 추상 메소드가 사용되고 있다. 추상 메소드의 정의만 알 수 있다. -> 정의부/ 처리의 뼈대 결정 하위클래스 : 추상 메소드를 실제로 구현하는 것 추상 메소드 구현으로 구체적은 처리가 결정된다. -> 구현부 서로 다른 하위 클래스가 서로 다른 구현을 실행하면 서로 다른 처리가 실행 가능하다. AbstractDisplay open print close display CharDisplay StringDisplay open print close open print close printLine 이때, open, print, close(a.. 2023. 11. 6.
[Java] 추상화(Abstraction) 추상화 : 구체적인 것을 분해해서 관찰자가 관심 있는 특성만 가지고 재조합하는 것 클래스(class) : 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념 객체(instance) : 유일무이(unique)한 사물, 클래스의 인스턴스 클래스:객체 = 사람:김연아 = 사람:홍길동 ex) 사람 클래스를 만들기 위해 주변에 보이는 공통적인 특성 시력, 몸무게, 혈액형, 키, 나이 등 명사로 표현되는 것 -> 속성(값) 먹다, 자다, 일하다 , 침 뱉다. -> 기능 행위(함수) class 사람 { float 시력; int 몸무게; int 키; void 먹다{...} void 일하다{...} 만약 애플리케이션을 만들었는데 사람에 대한 클래스를 이용해 객체를 만들때 필요없는 속성과 기능들이 있을 것이다. 병원 애플.. 2023. 10. 31.
[Python] Heap(힙) / heapq 모듈 1. 힙(Heap) 이란? 힙 : 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리 : 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n)이 걸림 이에 반해, 힙에 데이터를 넣고 최대값과 최소값을 찾으면 O(logn)이 걸림 우선순위 큐와 같이 최대값 또는 최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현 등에 활용됨. 2. 힙(Heap) 구조 힙 property : A가 B의 부모노드이면 A의 키값과 B의 키값 사이에는 대소 관계를 성립한다. 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다 항상 크거나/작거나 같다 최소 힙: 부모.. 2023. 10. 27.
Python None 리턴하는 경우 dfs 문제를 풀다가 값을 넘기려고 하는 것들은 print로 찍어보면 값이 잘나오고 있었지만 마지막 반환된 결과값을 확인하면 None 가 나오고 있었다. 1) 종료조건에서만 반환을 해주면 되었나 마지막 결과값을 종료조건에 반환해주면 되었나 생각했지만 아니였다. 종료조건에 반환이 되면 전 단계로 돌아가는데 이 때 return 값이 없다! return 문이 없으면 None을 반환하게 된다. def dfs(): if 재귀 종료 조건: return cnt dfs() 결국 이 함수에서는 cnt가 종료조건에 반환이 되었다고 하더라도 전 단계에서 반환해주는 값이 없어 None 값을 반환한다. cnt -> None -> None 을 반환하며 돌아가는 것 2) return None 을 사용해야 될 때 ~가 아닌 경우이다.. 2023. 10. 25.