본문 바로가기

전체 글

(65)
알고리즘 문제 해결 방법 1단계. 문제를 읽고 이해하기2단계. 문제를 익숙한 용어로 재정의문제를 추상화하여 재정의한다.현실 세계의 개념을 다루기 쉬운 수학적 개념으로 옮겨 재정의한다.어떻게, 어떤 부분을 추상화할 것인지에 따라 프로그램이 나아갈 방향이 정해진다.3단계. 문제 해결 계획 세우기문제를 어떻게 해결할지 결정하고, 사용할 알고리즘과 자료구조를 선택한다.3-1. 무식한 방법으로 풀 수 있을까? → 시공간 제약이 따른다면, 자료구조 개선 및 최적화 기법 적용하는 점직전인 개선3-2. 내가 문제를 푸는 과정을 수식화할 수 있을까?예제 입력을 손으로 풀어본다.위 과정을 공식화·수식화 해본다.예제  : QUANTIZE, NUMB3RS, RESTORE, MATCHORDER, POTION, TRAPCARD3-3. 문제를 단순화해볼 ..
Python 연산자 오버로딩을 위한 스페셜 메서드 정리 연산자 오버로딩이란? 연산자 오버로딩(Operator overloading)이란, 사용자 정의 클래스에서 기존에 정의된 연산자(+, -, *, / 등)의 동작을 재정의하는 것을 말한다. 이를 통해 사용자 정의 데이터 타입에 대해 연산자를 사용하여 직관적으로 작업할 수 있다. class Number: def __init__(self, value): self.value = value def __str__(self): return str(self.value) def __add__(self, other): if isinstance(other, Number): return Number(self.value + other.value) if isinstance(other, (int, float, bool)): retu..
Python 클로져 함수(Closure Function) Python 언어의 특징 Python은 동적 언어이기 때문에 클래스에서 정보의 은닉을 지원하지 않는다. 사용자가 만약 클래스나 객체 변수에 접근하여 프로그램에 잘못된 동작이 일어날 수 있다. 다른 언어는 private, public 등의 키워드를 제공하여 이런 가능성을 원천 차단해버리지만 Python은 가능성을 열어두고 잘못된 동작이 일어날 시 이를 사용자의 책임으로 전가한다. Python처럼 클래스 정보의 은닉을 지원하지 않는 언어에서 정보의 은닉을 사용하고 싶을 때 사용할 수 있는 것이 클로져 함수(Closure Function)다. 클로져 함수(Closure Function) 클로져 함수의 필요성을 다음과 같이 정리할 수 있겠다. 1. 클래스 없이 객체를 만들고 싶을 때 2. 정보를 은닉하고 싶을 ..