프로그래밍/자료구조 10

[파이썬 자료구조와 알고리즘] Chapter 11. 정렬 기본

학습 목표 정렬 개념 파악 정렬을 위한 코드 형식 이해 기본적인 정렬 방식 학습 정렬을 활용한 응용 프로그래밍 작성 Section00. 생활 속 자료구조와 알고리즘 대학교: 학생들 원하는 자리에 맘대로 앉음 교수 출석부에는 학번 순서나 이름 순서로 명단 작성됨 요리사도 칼 여러 개 사용하는데 가능하면 칼 크기대로 가지런히 놓고 사용하는 것을 좋아함 -정렬: 순서대로 데이터가 나열되어 있는 것 Section01. 정렬의 기본 1. 정렬의 개념 -정렬(Sort): 자료들을 일정한 순서대로 나열하는 것 -순서대로 나열할 때: 작은 것부터 나열하는 방법/큰 것부터 나열하는 방법 -오름차순 정렬(Ascending Sort): 작은 것부터 큰 순으로 나열된 방법 -내림차순 정렬(Descending Sort): 큰 ..

[파이썬 자료구조와 알고리즘] Chapter 10. 재귀호출

학습목표 재귀 호출의 개념과 작동 이해 재귀 호출을 위한 코드 형식 이해 재귀 호출을 다양한 응용 예로 연습 Section00. 생활 속 자료구조와 알고리즘 마트료시카 러시아인형 Section01. 재귀 호출의 기본 1. 재귀 호출의 개념 -재귀 호출(Recursion): 자신을 다시 호출하는 것 2. 재귀 호출의 작동 재귀 호출은 자신을 다시 호출하므로 강아지가 자신의 꼬리를 무고 빙글빙글 도는 형태임~ def openBox(): print("종이 상자를 엽니다") openBox() openBox() 너무 많이 반복되면 자동종료됨 마지막 만나면 종료할 수 있도록 조건 추가 가능 def openBox(): global count print("종이 상자를 엽니다") count-=1 if count==0: ..

[파이썬 자료구조와 알고리즘] Chapter 09. 그래프

학습 목표 그래프 개념 파악 그래프를 구성하는 파이썬 코드 작성 그래프로 활용되는 응용 프로그램 작성 Section00. 생활 속 자료구조와 알고리즘 버스정류장과 여러 노선이 함께 포함된 형태->그래프 구조 링크드인 같은 사회 관계망 서비스 Section01. 그래프의 기본 1. 그래프의 개념 -그래프(Graph): 여러 노드가 서로 연결된 자료구조 루트에서 하위 노드 방향으로만 이어지는 트리와 달리 그래프는 여러 노드가 연결되어 ㅣㅇㅆ을 수 있음 2. 그래프의 종류 정점을 연결하는 간선의 방향성 여부에 따라 방향 그래프와 무방향 그래프로 나뉨 간선에 가중치를 부여하여 가중치 그래프도 만들 수 있음 🤎무방향 그래프 -정점(Vertex): 트리의 노드에 해당하는 용어 -간선(Edge): 정점을 연결하는 선..

[파이썬 자료구조와 알고리즘] Chapter 08. 이진 트리

학습목표 이진 트리 개념 파악 파이썬으로 이진 트리 구현 코드 작성 이진 트리 중 활용도가 높은 이진 탐색 트리 이해하고 활용 이진 탐색 트리를 활용하여 다양한 응용 프로그램 작성 Section00. 생활 속 자료구조와 알고리즘 회사 조직도-->트리 구조 컴퓨터의 폴더 Section01. 이진 트리의 기본 1. 이진 트리의 개념 -트리(Tree) 자료구조: 나무를 거꾸로 뒤집은 형태 -뿌리(Root, 루트): 트리의 맨 위 루트를 레벨 0으로 두고 나뭇잎에 해당하는 아래로 내려올수록 레벨이 1씩 증가함 -노드: 각 위치 각 노드는 선, 엣지(edge)로 연결되어 있음 -부모, 자식 관계: 위 노드와 바로 아래 노드의 관계 -차수(degree): 자식 노드 개수 -리프(leaf): 차수가 0인 노드 트리의..

[파이썬 자료구조와 알고리즘] Chapter 07. 큐

💥학습목표 큐의 개념 파악 큐에 데이터를 넣거나 추출하는 원리 이해 파이썬으로 큐 조작 코드 작성 큐로 활용되는 다양한 응용 프로그램 작성 Section00. 생활 속 자료구조와 알고리즘 기차가 터널에 들어갈 때 1호차, 2호차, 3호차 순서대로 들어감 터널 빠져낭로 때도 1호차, 2호차, 3호차 순으로 나옴 -큐: 먼저 들어간 것이 먼저 나오는 자료구조 은행 ATM기 먼저 줄을 선 사람이 먼저 인출함 Section01. 큐의 기본 1. 큐의 개념 -큐(Queue): 입구와 출구가 따로 있는 원통 형태 -특징: FIFO(First In First Out) *주의점: 대기 중에 들어갈 때는 사람을 지정해서 들어갈 수 있지만, 대기줄에서 나올 때는 특정 사람을 선택할 수 없다 2. 큐 원리 큐는 양쪽이 뚫려..

[파이썬 자료구조와 알고리즘] Chapter 05. 원형 연결 리스트

학습목표 원형 연결 리스트의 개념 파악 원형 연결 리스트와 단순 연결 리스트의 차이 이해 원형 연결 리스트의 데이터 삽입/삭제 원리 이해 파이썬으로 원형 연결 리스트를 조작하는 코드 작성 Secton00. 생활 속 자료구조와 알고리즘 '해랑': 서울에서 출발해서 전국을 돌고 다시 서울로 돌아오는 일정 원형 연결 리스트=시작 위치와 다음 위치가 계속 이어진 후 마지막에 다시 돌아오는 형태 Section01. 원형 연결 리스트의 기본 1. 원형 연결 리스트의 개념 -단순 연결 리스트: 배열에 데이터를 차례대로 저장하므로 데이터의 실제 위치 순서로 데이터가 구성, 시작부터 끝까지 차례대로 방문 가능 끝까지 방문한 후에는 더 이상 방문할 곳이 없어 종료되므로 다시 방문하려면 헤드(head)부터 재시작해야 함 -..

[파이썬 자료구조와 알고리즘] Chapter 04. 단순 연결 리스트

학습 목표 단순 연결 리스트의 개념 파악 단순 연결 리스트와 선형 리스트의 차이 이해 단순 연결 리스트의 데이터 삽입/삭제 원리 이해 파이썬으로 단순 연결 리스트 조작하는 코드 작성 Section00. 생활 속 자료구조와 알고리즘 지도에 방문할 식당 연결한 것-->연결 리스트의 형태 Section01. 단순 연결 리스트의 기본(Singly Linked List) 1. 단순 연결 리스트의 개념 단순 연결 리스트에서는 저장된 노드들이 물리적으로 떨어진 곳에 위치 선형 리스트에서는 삽입하거나 삭제할 때 칸을 이동해야하는 번거로움이 있어서 데이터 크기가 커질수록 비효율적 =>오버헤드: 과하게 발생하는 작업 단순 연결 리스트에서 데이터 삽입: 오버헤드 없음 새로운 데이터가 담긴 노드를 임의 위치에 준비한 후 해당..

[파이썬 자료구조와 알고리즘] Chapter 03. 선형 리스트

학습목표 선형 리스트의 개념 파악 선형 리스트의 데이터 삽입/삭제 원리 이해 파이썬으로 선형 리스트 조작하는 코드 작성 다항식을 선형 리스트로 표현하는 방법 학습 Section00. 생활 속 자료구조와 알고리즘 맛집 웨이팅하는 것 떠올리기 Section01. 선형 리스트의 기본 1. 선형 리스트의 개념 -선형 리스트(Linear List): 데이터를 일정한 순서로 나열한 자료구조, =순차 리스트(Ordered List) -선형 리스트는 입력 순서대로 저장하는 데이터에 적당 ex) 좋아하는 프로그래밍 언어 종류, 카톡으로 연락 많이 온 친구 목록, 오늘 수업할 괌고 등 2. 선형 리스트의 원리 🤎데이터 삽입 -중간에 삽입하고 싶은 경우 빈칸이 없으므로 원하는 자리 이후에 있는 애들을 한 칸씩 이동시켜서 빈..

[파이썬 자료구조와 알고리즘] Chapter 02. 파이썬 기초 문법과 데이터 형식

2단원 내용은 이미 알고있는 것들이 많아서 모르는 내용이나 헷갈리는 내용들만 정리했다. 2차원 리스트 생성 list1=[] list2=[] value=1 for i in range(0, 3): for k in range(0, 4): list1.append(value) value+=1 list2.append(list1) list1=[] for i in range(0, 3): for k in range(0, 4): print("%3d" % list2[i][k], end=" ") print(" ") 컴프리헨션: 값이 순차적인 리스트를 한 줄로 만드는 간단한 방법 기존) numList=[] for num in range(1, 6): numList.append(num) numList 컴프리헨션) numList=[..

[파이썬 자료구조와 알고리즘] Chapter 01. 자료구조와 알고리즘 소개

추천받은 책으로 공부 시작! SBS 필기시험이랑 스노우 면접 때문에 잠깐 코딩테스트 공부를 멈췄다. 필기시험 결과는 어떻게 될지 모르겠고 스노우 면접보고 오늘 최종합격 했으니 입사 전까지 코딩테스트 공부를 열심히 해야겠다... 회사 들어가면 공부할 시간 없다고 들었음 Chapter 01. 자료구조와 알고리즘 소개 학습 목표 자료구조의 개념을 파악할 수 있다 네 가지 자료구조의 종류를 알 수 있다 알고리즘의 정의를 이해하고, 알고리즘과 자료구조의 관계를 알 수 있다 알고리즘을 표현하는 다양한 방법을 이해하고, 성능 측정 방법을 확인한다 파이썬을 설치해서 실습 환경을 구축한다 Section 00. 생활 속 자료구조와 알고리즘 자료구조와 알고리즘은 일상생활과 밀접하다. 자료구조=자료를 효율적으로 관리하는 방법..