파이썬 알고리즘 5

딕셔너리

딕셔너리 key와 value로 이루어진 딕셔너리 파이썬 3.7+ 부터 입력 순서가 유지됨 내부적으로 해시 테이블(11장에서 자세히 소개)로 구현되어 있다. 해시 테이블은 다양한 타입을 키로 지원하면서도 입력과 조회가 모두 O(1)에 가능 분활 상환 분석에 따른 시간 복잡도는 O(1) 연산 시간 복잡도 설명 len(a) O(1) 요소의 개수를 리턴 a[key] O(1) 키를 조회하여 값을 리턴 a[key]=value O(1) 키/값을 삽입 key in a O(1) 딕셔너리에 키가 존재하는지 확인 💡 주의! 파이썬 3.6 이하의 경우 입력 순서가 유지되지 않을 수 있다. ( 코딩 테스트 시에도 인터프리터의 버전을 정확히 확인할 수 있는 상황이 있을 수 있음) ⇒ 항상 입력 순서가 유지되는 collection..

파이썬 리스트 구조

리스트 리스트 순서대로 저장하는 sequence 변경 가능 입력 순서가 유지 내부적으로 동적 배열로 구현되어 있음(7장에서 자세히) 장점 다양한 기능을 제공, O(1)에서 실행 가능한 연산도 존재 리스트의 주요 연산 시간 복잡도 연산 시간 복잡도 설명 len(a) O(1) 전체 요소 개수 a[i] O(1) index가 i인 요소 a[i:j] O(k) 슬라이싱에서 k개에 대한 조회가 필요 elem in a O(n) elem이라는 요소가 a안에 있는지 확인 a.count(elem) O(n) elem 요소의 개수 a.index(elem) O(n) elem요소의 index a.append(elem) O(1) elem요소를 리스트 마지막에 추가 a.pop() O(1) 리스트 마지막 요소를 추출 a.pop(0) O..

자료형, 자료구조, 추상 자료형

자료형 리스트(List)와 딕셔너리(Dictionary)에 대해 중점적으로 살펴본다. 파이썬 자료형 None class None Type 숫자 정수형 정수 ( class int ) 파이썬에서는 숫자 정수형으로 int만을 제공 int는 임의 정밀도를 지원(무제한 자릿수 제공) ⇒ 정수를 숫자의 배열로 간주해서, 자릿수 단위로 쪼개어 배열 형태로 표현한다. 이후, 나중에 사용할 때 모두 더하여 사용한다. ⇒ 숫자를 임의 정밀도로 처리하면 계산 속도가 저하되지만 숫자를 단일형(int 하나)로 처리할 수 있고 Overflow를 고려할 필요가 없어 잘못된 계산 오류를 방지할 수 있음. ⇒ 기능을 위해 속도를 희생 불리언 ( class bool ) bool은 엄밀히 따지면 논리 자료형이지만, 파이썬 내부적으로 1(..

빅 오 표기법

빅 오 입력값이 커질 떄 알고리즘의 실행 시간(시간 복잡도)과 함께 공간 요구사항(공간 복잡도)이 어떻게 증가하는지를 분류하는데 사용한다. → 알고리즘의 효율성을 분석하는데 활용 빅오 입력값이 무한대로 향할 대 함수의 상한을 설명하는 수학적 표기 방법 점근적 실행 시간(Asymptotic Running Time)을 표기할 때 가장 널리 쓰이는 수학적 표기법 중 하나 컴퓨터의 빠른 처리 능력을 감안하더라도 입력의 크기가 충분히 큰 경우에는 알고리즘의 효율성에 따라 수행시간이 크게 차이가 난다. 점근적 실행 시간 = 시간 복잡도 (Time Complexity) = 어떤 알고리즘을 수행하는 데 걸리는 시간을 설명하는 계산 복잡도(Computational Complexity) 계산 복잡도를 표기하는 대표적인 방..

파이썬 문법 기본

목차 1. 인덴트 2. 네이밍 컨벤션 3. 타입 힌트 4. 리스트 컴프리헨션 5. 제너레이터 6. range 7. enumerate 8. 나눗셈 연산자 9. print 10. pass 11. locals 인덴트 공백 4칸을 원칙 IDE 쓰면 알아서 네이밍 컨벤션 snake case를 따른다. (각 단어를 밑줄(_)로 구분) → python의 PEP(Python Enhancement Proposals) 8 및 철학에 따라 스네이크 코딩을 지향 타입 힌트 동적 타이핑 언어임에도 타입을 지정할 수 있다. a: str = "1" b: int = 1 def fn(a:int) -> bool: ~타입 선언을 할 수 있기는 하지만, 여전히 동적으로 할당 될 수 있음 a:str = 1 type(a) 출력 : ⇒ 타입 지..