다라다라V
article thumbnail
[구버전] [Python] 04. 재귀 알고리즘

📌 재귀 알고리즘의 기본 📚 재귀(recursive) 알아보기 어떤 이벤트에서 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의되는 경우 재귀를 효과적으로 사용하면 프로그램을 간결하고 효율성 있게 작성 📚 팩토리얼 = 순차 곱셈 팩토리얼 : 양의 정수를 순서대로 곱한다는 의미 팩토리얼 n! 의 정의 (n은 양의 정수) 0! = 1 n > 0이면 n! = n * (n - 1)! # 양의 정수 n의 팩토리얼 구하기 def factorial(n: int) -> int: """양의 정수 n의 팩토리얼 값을 재귀적으로 구함""" if n > 0: return n * factorial(n - 1) else: return 1 if __name__ == '__main__': n = int(input('출력할 팩토리..

article thumbnail
[구버전] [Python] 03. 스택과 큐

📌 스택이란? 📚 스택 알아보기 📃 스택 (stack) 데이터를 임시 저장할 때 사용하는 자료구조 데이터의 입력과 출력 순서는 후입선출(LIFO) 방식 푸시(push) : 스택에 데이터를 넣는 작업 팝(pop) : 스택에서 데이터를 거내는 작업 겹쳐쌓은 접시처럼 데이터를 넣고 꺼내는 작업을 맨위부터 진행 푸시하고 팝하는 윗부분을 꼭대기(top), 아랫 부분을 바닥(bottom) 📚 스택 구현하기 📃 스택을 구현하는데 필요한 데이터 스택 배열 : stk 푸시한 데이터를 저장하는 스택 본체인 list 배열 인덱스가 0인 원소가 스택의 바닥 가장 먼저 푸시하여 데이터를 저장하는 곳은 stk[0] 스택 크기 : capacity 스택의 최대 크기를 저장하는 정수 = len(stk) 스택 포인터 : ptr 스택에 ..

article thumbnail
[구버전] [Python] 02. 검색 알고리즘

📌 검색 알고리즘이란? 📚 검색의 종류 배열 검색 (선형 검색) 연결 리스트 검색 이진 검색 트리 검색 📚 배열 검색 중에 배울 내용 선형 검색 : 무작위로 늘어놓은 데이터 집합에서 검색을 수행 이진 검색 : 일정한 규칙으로 늘어놓은 데이터 집합에서 아주 빠른 검색을 수행 해시법 : 추가·삭제가 자주 일어나는 데이터 집합에서 아주 빠른 검색을 수행 체인법 : 같은 해시값 데이터를 연결 리스트로 연결하는 방법 오픈 주소법 : 데이터를 위한 해시값이 충돌할 때 재해시하는 방법 📌 선형 검색 📚 선형 검색 (linear search) / 순차 검색 직선 모양(선형)으로 늘어선 배열에서 검색하는 경우 사용 원하는 키값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘 배열의 개수가 n이라..

article thumbnail
[구버전] [Python] 01. 자료 구조와 배열

이 포스트는 [Do it! 자료 구조와 함께 배우는 알고리즘 입문 - 파이썬 편]을 보며 제가 알아야할 내용들을 정리한 포스트입니다. 개인 공부용이므로 자세한 설명이나 정보 설명을 위한 포스트는 아님을 미리 말씀드립니다. 📌 자료구조와 배열 📚 리스트의 기초 리스트의 원소를 변경할 수 있는 뮤터블(mutable) list 형 객체 파이썬 내장 함수인 list( )를 사용하여 다양한 자료형의 원소를 가진 객체 생성 가능 None을 통해 원솟값을 정하지 않은채로 개수 사용 가능 📚 튜플의 기초 튜플은 원소에 순서를 매겨 결합한 것으로 원소를 변경할 수 없는 이뮤터블(imutable) 자료형 tuple( ) 을 사용하면 문자열이나 리스트 등 여러가지 자료형 객체를 원소로 하는 튜플 생성 가능 📚 뮤터블과 이뮤..