목록패스트캠퍼스 - 자료구조와 알고리즘/파이썬 기초 문법 (19)
프론트엔드 정복하기
더블 링크드 리스트 이중 연결 리스트라고도 함 데이터에 이전데이터주소, 다음데이터주소 모두가 있다. 양방향으로 연결되어있어 노드 탐색이 양쪽으로 모두 가능하다. 어떤 데이터를 찾으려면 head부터 순차적으로 찾아나가야하는 단점을 보완했다고 할 수 있다.
객체 기본 class Dave: width = 0 height = 0 color = '' square1 = Dave() square2 = Dave() square1.width = 10 square1.height = 5 square1.color = 'red' square2.width = 7 square2.height = 7 square2.color = 'blue' 위에서 square1 = Dave() 구문처럼 변수에 class를 선언하는것이 객체를 인스턴스화하는 것이다. 그저 Dave() 로는 객체를 사용할 수 없다. 객체와 메소드 class Quadrangle: width = 0 height = 0 color = "black" def get_area(self): return self.width * sel..
링크드 리스트란 ) 연결 리스트라고도 함 '배열'은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 '링크드 리스트'는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 배열의 단점을 극복 본래 C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원 링크드 리스트 기본 구조와 용어 노드(Node): 데이터 저장 단위 (데이터값, 포인터) 로 구성 포인터(pointer): 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 장*단점 ) 장점 배열과 달리 미리 데이터 공간을 확보하지 않아도 됨 단점 연결을 위한 별도의 데이터 공간(pointer)이 필요해 저장공간 효율이 높지 않음 연결 정보를 찾는 시간이 걸리므로 접근..
스택 : LIFO 정책을 갖는다. 대표적인 스택의 활용 - 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 push : 데이터 스택에 넣기 pop : 데이터 스택에서 꺼내기 재귀함수와 스택 아래는 운영체제 과목에서 깊게 설명해야 이해할 수 있는 부분이다. 프로세스 스택의 구조까지 이해할 필요는 없다. 다만, 함수 위에 함수가 호출되면 스택같은 구조로 함수가 쌓이고, 맨위 함수가 끝나면 그 다음( 그 아래) 함수가 불려진다는 프로세스만 이해하면 된다. # 재귀 함수 def recursive(data): if data < 0: print ("ended") else: print(data) recursive(data - 1) print("returned", data) recursive(4) 4 3 2 1 0 en..
def: 함수를 만들 때 사용하는 예약어 def 함수명(매개변수): ... 여러 가지 함수 # 일반적 함수 def test(a): return a # 입력값이 없는 함수 def test(): return 1 # 결과값이 없는 함수 def test(a): print(a) # 입력값, 결과값이 없는 함수 def test(): print(1) ** 매개변수를 지정해서 사용할 수 있다. (--> 순서와 관계없이 사용 가능) def add(a,b): return a, b result = add(a=2, b=4) # or result = add(b=1, a=3) ** 매개변수에 초기값 지정 def add(a,b=3): return a, b ** 입력값이 몇 개가 될지 모를 때 def add_many(*arg): f..
집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. 집합 자료형 만들기 s = set("Hello") # {'e', 'H', 'l', 'o'} 위 결과를 보면 Hello와는 달리 결과값이 뒤죽박죽이다. set에는 다음과 같은 2가지 특징이 있다. 중복을 허용하지 않는다. 순서가 없다. 리스트, 튜플은 순서가 있어 index로 값을 얻을 수 있었으나 set은 그렇지 않다. ** index로 접근하고 싶다면, list, tuple로 랩핑해 리스트 또는 튜플로 변환 후 접근하면 된다. 아래와 같은 자료형이 있다. s1 = set([1, 2, 3, 4, 5, 6]) s2 = set([4, 5, 6, 7, 8, 9]) 교집합 구하기 s1 & s2..