list.append(추가하고자 하는 원소 한개)list.sort() :오름차순 정렬, 문자는 사전순 정렬list.insert(idx, data) : 인덱스 i에 자료 d 추가list.remove(d): 처음나오는 d 삭제순서가 있는 자료형리스트, 문자열 등a = "a
큰 따옴표 / 작은 따옴표 중 무엇을 사용하던 상관 없음. 단지, 여닫을 때 같은 것만 사용하면 됨.오류 발생 : quote가 3개 이상 사용될 경우.''' 사용 하면 문자열 내부에서 여러줄이 들어가는 문자열 생성 가능.''' 사용 하면 내부에서 ', " 사용 시 헷갈
1. 재귀 호출된 함수가 자기 자신을 재호출함 1.1. 팩토리얼 구현하기 팩토리얼 : 1부터 n까지의 곱셈(n!) 1.2. 순열 : 재귀 트리 순열 : 순서가 있는 집합을 다른 순서로 섞는 것 ex) {1,2,3} 의 순열 : {1,2,3}, {1,3,2},
모든 n > n0에 대해 0 <= f(n) <= cg(n)인 양의 상수 c, n0가 존재하면 f(n) = O(g(n))f(n) = 2n+5, n0 = 5, c = 3일 경우, cg(n) = 3nf(n)과 cg(n)이 만나는 지점인 n0 이후부터는 항상 모든
힙 영역에 저장된 배열스택실제 스택프레임에 쌓이는 메모리 공간따라서 실제 스택 프레임의 크기를 알아야 함반드시 고정된 크기의 배열 생성해야 함힙변수 생성, 소멸시기를 프로그래머가 결정 가능 : 동적 할당ex) 파이썬의 리스트Array.is_empty() : Boolea
노드 : 연결리스트는 요소들이 참조로 이루어져 있고, 각 요소는 노드라는 틀에 담겨져 있음. 노드 구조data : 실제 저장하려는 데이터link : 다음 노드단순 연결리스트 : 다음 노드를 가리키는 참조 하나만 가짐이중 연결리스트 : 앞 노드와 뒷 노드를 가리키는 참조
5.1. 스택 > 데이터를 접시쌓듯이 차곡차곡 쌓는다 : 맨 마지막에 들어온 데이터 먼저 차출됨(LIFO) 1) ADT 1-1) Object LIFO 객체 1-2) Operation 1) empty() : Boolean 타입 2) push(data) : data
6.1. 용어 > 그래프는 정점(vertex)의 집합 V(G)와 에지(Edge)의 집합 E(G)로 정의 > _ > - G = (V, E) 6.1.1. 무방향 그래프 > G = (V, E) V(G) = {0, 1, 2, 3} E(G) = {(0,1), (0
7.1.용어 1) 노드 그래프의 정점과 비슷 root 노드 : 맨 위의 노드 부모, 자식 노드 : 1단계 차이 조상, 자손 노드 : 2단계 차이 2) 차수 어떤 노드의 자식 노드 개수 트리의 차수(degree of a tree) : 트리에 있는 노드의 최대 차수 리프
8.1. 이진탐색 알고리즘(binary search algorithm) > 정렬된 데이터로 된 리스트(배열이나 연결 리스트)가 인수로 들어왔을 때 요소 중에 찾고자 하는 데이터가 있는지 알아보는 알고리즘
데이터가 정렬된 상태에서 들어오면 각 레벨마다 노드를 하나씩만 가져 결국은 연결리스트 구조가 됨.해결 : 회전(rotation)을 이용모든 빈 노드를 외부 노드(external node)로 대체함이전 리프 노드가 더이상 리프노드가 아니게 됨내부 노드(internal n
m : 노드가 가질 수 있는 최대 자식의 개수노드가 가질 수 있는 최대의 키 개수 : m-1키의 의미 : 메모리 접근 횟수, 비교 연산 횟수의 차이ex) 2-way : 노드 키가 1개임.하드디스크에 저장된 노드를 읽어오는 메모리 접근 횟수, 읽어온 데이터를 찾고자 하는
내부 표현 : 동적배열, 완전 이진 트리최대 힙과 최소 힙으로 나눌 수 있음최대 트리이면서 완전 이진트리최대트리 : 어떤 노드의 키가 자식의 키보다 작지 않은 트리parent.key >= child.key완전 이진 트리 : 트리 높이가 h일 때 h-1레벨까지는 2^h-
1. 1부터 n까지 합 구하기
리스트 길이(자료의 개수)max_n(a) : 비교 연산 n-1번 수행 ==> O(n)a최댓값의 위치번호 = 최댓값
자료 간 중복 없음자료들의 순서 없음이중 루프 : 리스트 안에 있는 자료를 서로 빠짐없이 비교하되 중복해서 비교하지 않기 위함for i in range(0, n-1): : 0부터 n-2까지 반복. 리스트 마지막 값인 an-1을 비교할 필요가 없음.for j in ran
1부터 n까지 연속한 정수의 곱n : 1 x 2 x ... x n-1 x n종료 조건 필요1! = 12! = 1 x 2 = 2 x 1!3! = 1 x 2 x 3 = 3 x 2!n! = 1 x 2 x ... x (n-1) x n = n x (n-1)!ex) fact2(4
탐색 : 여러 개의 자료 중 원하는 것을 찾아냄 정렬 : 주어진 자료를 순서에 맞춰 나열 1. 순차 탐색 = 선형 탐색 > 리스트 안에 있는 원소를 하나씩 순차적으로 비교하면서 탐색 1) 순차 탐색 알고리즘 입력 리스트 : a 탐색 값 : x 출력 인
회문 : 순서대로 읽어도, 거꾸로 읽어도 그 내용이 같은 단어나 문장큐, 스택 이용 : 큐에서 꺼낸 문자와 스택에서 꺼낸 문자들이 모두 같다면 그 문장은 회문임.if qu.pop(0) != st.pop(): : 큐와 스택에서 꺼낸 문자 비교while i < j: