본문 바로가기
# 재귀 함수 재귀 함수에 대해 정리하고자 게시글을 작성하게 되었습니다. 재귀함수가 대표적으로 원리만 들었을 때는 이해가 쉬운 것 같지만 육안으로 확인하기 어렵기에 많은 사람들이 저 포함하여 헷갈리는 듯한 느낌이 들어 이를 정리하고자 합니다. def fact(n, depth=0): indent = " " * depth print(f"{indent}fact({n}) 호출") if n == 0: print(f"{indent}→ 1 리턴") return 1 result = n * fact(n - 1, depth + 1) print(f"{indent}fact({n}) 종료, {result} 리턴") return resultfact(3)재귀의 콜스택이 어떻게 이루어지.. 2025. 11. 30.
# heap 마지막으로 힙에 대해서 정리하고자 합니다. 힙은 우선순위 큐라고도 하며 최소 힙과 최대 힙의 개념이 존재합니다. 이를 파이썬 코드로 작성하겠습니다. 여기서는 PriorityQueue()를 사용합니다. 최소 힙from queue import PriorityQueuehp = PriorityQueue()hp.put(40)hp.put(10)hp.put(30)hp.put(20)print("현재 힙의 값은: ", hp.queue)remove_first = hp.get()print("가장 우선순위 값: ", remove_first)현재 힙의 값은: [10, 20, 30, 40]가장 우선순위 값: 10코드 상으로 40 - 10 - 30 - 20 순서로 값을 넣었으나 값을 확인해보면 위의 결과값처럼 보이게 됩니다. .. 2025. 11. 25.
# queue & stack 스택과 큐에 대해 정리를 하고자 합니다. 파이썬에서 스택과 큐는 모두 deque()를 사용합니다. stack스택은 LIFO(Last In First Out)으로 가장 늦게 들어온 값이 먼저 나간다라는 개념을 가지고 있습니다. 코드로써 구현하면 다음과 같습니다. from collections import dequestk = deque()stk.append(10)stk.append(20)stk.append(30)print("10, 20, 30 순서로 들어온 스택: ", stk)removed_stk = stk.pop()print("상단의 값을 제거: ", removed_stk)10, 20, 30 순서로 들어온 스택: deque([10, 20, 30])상단의 값을 제거: 30다음과 같이 리턴된 값을 확인할 .. 2025. 11. 24.
# set 파이썬의 set에 개념에 대해 조금 정리해두고자 이 게시글을 작성합니다. set의 개념정리에 앞서 해시테이블이라는 것에 대해 먼저 정리가 필요합니다. 해시테이블해시테이블은 두 가지 의미가 내포되어 있습니다. 첫번째는 키와 값으로 이루어진 자료구조를 의미하고 두번째는 해쉬를 통해서 값을 접근하는 형태의 구조를 의미합니다. 키와 값으로 이루어진 자료구조는 흔히 객체라고 말하는 파이썬에선 딕셔너리를 의미합니다. 본글과는 상관없기에 다루지는 않고 넘어가겠습니다. 해시를 통해서 접근하는 형태의 구조라는 단어를 듣고 처음에는 이해가 가지 않았으나 천천히 읽고 확인해보니 대충 납득되었습니다. setlst = [1, 1, 2, 3]st = set(lst)print('list: ', lst)print('set: ' ,.. 2025. 11. 24.