[2022-03-06] 알고리즘 공부

    1. defaultdict() collections 모듈에 포함된 dict의 서브 클래스 dict와 작동 방식은 동일하지만 인자로 주어진 객체의 기본값을 초기값으로 지정 가능 >>> int_dict = defaultdict(int) >>> int_dict >>> defaultdict(, {}) int를 인자로 넣을 경우 값을 지정하지 않은 키는 그 값이 0으로 지정됨 >>> int_dict['key1'] 0 >>> int_dict defaultdict(, {'key': 0}) 2. infinite 양의 무한대 float('inf') 음의 무한대 float('-inf') 3. Prim's Algorithm 시작 정점을 선택한 후, 정점에 인접한 간선 중 최소 비용의 간선을 연결하여 최소 신장 트리(MST)..

    [2022-03-05] 알고리즘 공부

    1. Operator Overloading 연산자 오버로딩은 인스턴스 객체끼리 서로 연산을 할 수 있게 기존 연산자의 기능을 중복으로 정의하는 것 연산자 오버로딩의 예시 Method Operator Example __add__(self, other) + (Binomial) A + B, A += B __pos__(self) + (Unary) +A _sub__(self, other) - (Binomial) A - B, A -= B __neg__(self) - (Unary) -A __mul__(self, other) * A * B, A *= B __truediv__(self, other) / A / B, A /= B __floordiv__(self, other) // A // B, A //= B __mod__..

    [2022-03-04] 알고리즘 공부

    1. Set 백준 1107번(리모컨) 문제를 풀 때 유용하게 사용 해당 문제는 특정 길이의 문자열에 대해 가능한 모든 조합을 탐색해야 하는데 시간복잡도를 줄이기 위해 중복이 없는 집합을 사용 빈집합은 set() 명령어로 간단하게 정의 Set은 Dictionary와 동일한 Hash Table 기반이기 때문에 x in s 연산의 시간복잡도가 O(1) 리스트의 x in s 연산 시간복잡도가 O(n)인 것과는 큰 차이 Set을 응용해 작성한 코드 일부 buttons = set([str(i) for i in range(10)]) channels = {N,} diff = {abs(int_N-100)} if M > 0: buttons -= set(list(input().split())) channels = set()..