본문 바로가기

인공지능 대학원/자료구조 알고리즘

(4)
컬렉션 자료형: 리스트, 튜플, 딕셔너리 1. 컬렉션 자료형: 리스트, 튜플, 딕셔너리✅ 리스트 (List)가장 많이 사용하는 자료구조 중 하나순서가 있으며, 변경(수정/삭제) 가능하고, 중복 허용대괄호 [] 사용fruits = ['apple', 'banana', 'cherry'] 자주 사용하는 리스트 메서드메서드 설명 예시append(item)리스트 맨 뒤에 추가fruits.append('grape')insert(pos, item)특정 위치에 추가fruits.insert(1, 'orange')extend(list)리스트에 다른 리스트 확장fruits.extend(['kiwi', 'melon'])pop([pos])특정 위치(기본 마지막)의 요소 제거fruits.pop()remove(item)특정 값을 가진 첫 번째 항목 제거fruits.remo..
python 연산자 및 제어문 1. 변수와 예약어변수: 값을 저장하는 참조자 또는 포인터 역할예약어(키워드): 변수로 활용할 수 없는 단어2. 리터럴과 자료형리터럴: 코드에서 직접 값을 표현하는 것주요 자료형: int, float, str, bool, list, tuple, set, dict3. 연산자//: 나눈 값의 몫 반환%: 나눈 값의 나머지 반환관계 연산자: , >, , >=, !=논리 연산자: or (||), and (&&), not (!)in, not in: 특정 값이 존재하는지 확인 (if문에서 사용 가능)4. 함수 호출과 입출력 함수내장 함수 예시: sum()함수 호출 방법: 함수명(인수)키보드 입력 함수: input()int()/float(): 입력값을 숫자로 변환5. 조건문if, else, elif 사용하여 분기 처..
시간 복잡도 표기법과 알고리즘, 하노이탑 1. 시간 복잡도 표기법시간 복잡도는 알고리즘의 실행 시간이 입력 크기에 따라 어떻게 변화하는지를 나타내는 개념이다. 대표적으로 빅오(Big-O), 빅세타(Big-Theta), 빅오메가(Big-Omega) 표기법이 사용된다.1.1 빅오(Big-O) 표기법최악의 경우 시간 복잡도를 나타냄.알고리즘의 실행 시간이 가장 오래 걸리는 경우를 기준으로 평가.입력 크기 n이 커질수록 성능이 어떻게 변하는지를 분석.상한선(Upper Bound)을 나타냄.예제선형 탐색(순차 탐색) → O(N)선택 정렬 → O(N²)이진 탐색 → O(log N)퀵 정렬(평균) → O(N log N), 최악 → O(N²)1.2 빅세타(Big-Theta, Θ) 표기법평균적인 경우 시간 복잡도를 나타냄.최선과 최악의 경우를 포함하여 입력 크..
자료구조와 알고리즘 1. 추상자료형(Abstract Data Type, ADT)데이터와 해당 데이터에 수행할 수 있는 연산을 정의하지만, 구현 방법은 명시하지 않음.예시: 가방(Bag)의 추상자료형데이터: 중복 허용, 순서 없음, 비교 가능연산:def contains(bag, e): # 특정 요소가 존재하는지 확인 return e in bagdef insert(bag, e): # 요소 추가 bag.append(e)def remove(bag, e): # 요소 삭제 bag.remove(e)2. 알고리즘 성능 분석(1) 실행 시간 측정실제 실행 시간 측정→ time 모듈을 이용하여 실행 시간을 측정할 수 있음.import timedef example(): start = time.time() # 시작 ..

728x90