1. 데이터 구조 이해
1-1. 자료 구조의 중요성
- (중요) 데이터를 정보로 변환하는 것이 정보처리 기사의 역할임
- 프로그램을 통해 컴퓨터에 명령(호텔 방식)을 내려 원하는 데이터를 생성함
- 소프트웨어 개발자의 목표는 저장 공간과 실행 시간 문제임
- 자료 구조는 메모리 공간 활용을 최적화하고, 데이터 관리를 효율적으로 하는 방법임
- 효율적이고 정확한 데이터 저장을 위해 자료 구조가 필요함
1-2. 데이터 구조의 종류
- 현재 데이터는 선형 구조와 비선형 구조로 나뉨
- 선형 구조는 연속된 집합, 비선형 구조는 항등한 집합을 의미함
- 효율성과 일관성을 위해선 비선형 구조가 이상적이며, 실제로는 대부분 비선형인 선형 포매팅으로 나타남
- 자료 구조는 컴퓨터 메모리 상에서 어떻게 데이터를 저장하는지, 그 효과적인 관리 방법을 연구하는 학문임
1-3. 데이터베이스 소개
- 데이터베이스는 관련성이 있는 데이터들의 집합이며, 20문제 정도면 1개의 시험 문제 당 2~3문제가 나옴
- 이 강의에서 다룬 부분은 전체 과목 중 일부이며, 깊이 있는 내용은 없으므로 꼭 외우라고 할 필요는 없음
- 교재에서 강조한 부분은 시험에 반드시 나오진 않으나, 많이 나오기에 2~3문제 암기는 필요함
- 데이터베이스 설계 및 시스템, 모델링 등 다양한 주제가 있으니 준비할 것임
2. 메모리 구조
2-1. 자료 구조 소개
- (중요) 메모리 주기억과 달리, 데이터 저장 공간인 메모리는 실제 기억장치임
- 메모리에서 주소 부여받으면 데이터 집합인 메모리에 위치함
- 메모리에 저장된 집합을 리스트라고 부름
- 메모리는 항상 저장 장치에 연결되어 있고, 연결된 곳에 따라 명칭이 달라짐
- 메모리는 데이터 저장과 활용이 가능한 공간이며, 특히 효율성이 매우 높음
2-2. 선형 구조와 비선형 구조
- 메모리에 저장된 데이터는 일률적이 아니라 비선형적인 형태로 저장됨
- 추리, 그래프 등의 데이터를 메모리에 일률적으로 저장하지 않고, 각각의 데이터 관계를 의미하는 추리나 그래프 구조로 표현함
- 연결 리스트와 순서 리스트(또는 링크드 리스트) 등 다양한 선형 구조 존재함
- 이러한 구조 중, 연결 리스트는 동일한 종류의 데이터라도 연결된 순서대로 저장되기 때문에 다중 데이터가 잘 유지되고 찾기 쉬워짐
- 추리 구조는 데이터 간의 위계 관계를 분석하기 위해 사용하며, 그래프 구조는 관계를 표현하여 이를 통해 알고리즘을 개발할 수 있음
2-3. 자료 구조의 적용
- 자료 구조는 컴퓨팅 파워의 발전과 함께 필수적인 컨셉이 됨
- 컴퓨터에서 데이터는 메모리 위에 위치하며, 이를 원천이라고 불림
- 데이터는 주소가 매겨지고, 메모리와 달리 본질적으로 임계된 범위 내에 있을 때 유지됨
- 데이터의 위치는 버퍼리스트에서 관리하며, 다양한 방식으로 다루어짐
- 이런 자료 구조를 이해하면 데이터 운영 및 분석에 도움이 됨
3. 다형 데이터 구조
3-1. 순서 리스트의 활용과 장단점
- 데이터를 메모리에 메모리화하여 순서 리스트 형태로 저장함
- 리스트의 시작 처리 대상은 '첫 번째' 데이터임
- 각 노드(데이터 또는 요소)에는 '처음', '일곱 번째', '열두 번째' 등의 정보가 포함됨
- (중요) 메모리 주소값 외에도 '찾기 위한 주소' 또한 메모리에 저장됨
- 집단의 일원 데이터 삽입 시 많은 양의 데이터가 이동해야 함
3-2. 연결 리스트의 개념과 특징
- 순서 리스트와 달리, 데이터를 연속적인 메모리에 저장하지 않고 자료 항목의 순서에 따라 노드의 주소를 변경시킴
- 메모리와 독립적으로 동작하며, 메모리 위치에 영향 받지 않음
- 연결 리스트는 노드 구조(데이터와 링크 부)로 이루어짐
- 순서 리스트의 노드 구조는 노드마다 특정 데이터만 저장하며, 연결 리스트의 노드 구조는 데이터와 링크 부로 구성됨
- 링크 부는 해당 노드 이후의 데이터의 주소값을 포함함
3-3. 연결 리스트의 구현
- 연결 리스트는 메모리 구역 중 "합시다" 표현 부분에 필요한 인덱스 변수 없이 사용 가능함
- 노드 구조에서 데이터 저장 및 인덱스 변수 설정 등을 통해 연결 리스트를 구현함
- 인덱스는 해당 노드의 데이터를 찾기 위해 필요한 추가 정보이며, 데이터의 순서를 유지하도록 명령어에 설계됨
- 전체 연결 리스트의 길이나 비교 불가능하므로 메모리 접근이 원활하지 않을 수 있음
- 하지만 기본 구조 덕분에 코드 최적화 및 재귀적용이 용이하게 해주며, 다양한 프로그래밍 언어로 작성 및 진행이 가능함
4. 순서리스트와 연결리스트
4-1. 순서리스트 소개
- 여러 개의 '노드'로 구성된 음악 곡 형태의 선별 구조임
- 각 노드마다 '키'를 갖고 있으며, 이를 통해 데이터 검색 및 삽입/삭제 가능함
- 노드 간에 연결된 애들과 무관하게 '직접적으로 연결된 노드'로 데이터 보내기 때문에 메모리 사용량 절약됨
- (중요) 프로그램 내 데이터의 삽입과 삭제가 연속적이며, 메모리 내 불필요한 기억 공간 차지 현상이 생김
- 단위 입력 사이의 충돌이 자주 발생하여 메모리 낭비가 초래될 수 있음
4-2. 연결리스트의 특징
- 연결 리스트는 노드 간의 연결 관계가 더 복잡한 형태이며, 메모리 조작에 대한 접근 속도 부담이 커짐
- 연결 리스트의 예로 순서리스트와 로직 언어(선/분/결/집합/특/검색 튜종) 등이 있음
- 연결 리스트는 논리적으로 움직이는 파트(노드)들로 구성되었으며, 물리적으로는 파트(노드)들의 주소를 직접 연결하지 않음
- (중요) 연결 리스트의 핵심은 연결 리스트의 시작노드, 끝노드, 앞뒤 노드 등의 역할과 명령어들을 통해 처리된 순서를 찾는 것임
- 연결 리스트에서 삽입과 삭제가 새롭게 추가된 항목에 대해 급속히 적용되기 때문에, 이를 연속적인 메모리 공간 내에 처리 가능함
4-3. 소재리스트와 시험 준비
- 라이브러리 자료 형식을 갖춘 배열 자료 구조를 지칭하며, 일차원 배열, 이차원 배열 등을 포함함
- 데이터의 성격과 구조를 유지하면서 다차원 배열을 지원함
- (중요) 암기를 위한 시험에서는 주로 1차원 배열에 대해 시험 문제가 출제되므로 관련 내용 숙지는 필수
- 앞서 언급한 수요량의 변화에 따른 판매 수익 변환 설명처럼 강사가 말하는 부분은 본문으로 치우치지 않는 것이 핵심임
- 또한, 전반적인 설명 문구, 부칙사항 등보다 시험에 나오지 않은 부분은 고려하지 않아도 될 것임
5. 배열과 메모리
5-1. 2차원 배열과 메모리 표현
- 1차원 배열에서 행/열 중 하나를 0으로 만듦으로써 생성 가능함
- 2차원 배열의 표준배열이 첫 번째 숫자임
- 2행 3열인 배열을 표현할 수 있으며, 각각의 행과 열에 1만 들어감
- 배열을 논리적으로 표현하므로 물리적으로는 메모리에 저장될 수밖에 없음
- 물리적 메모리 표현 방법은 '핵무선 방식'과 '열우선 컬럼 메이징 방식'이 있음
5-2. 배열의 명령어 처리
- (중요) 메모리 표현 방법은 '핵무선 방식'과 '열우선 컬럼 메이징 방식'이 있음
- '핵무선 방식'에서는 데이터 처리 순서를 기록한 위치(행정)와 바뀐 위치(열)의 차이로 계산함
- '열우선 컬럼 메이징 방식'에서는 각 열에 접근하는 위치(행정)만큼 조정해주고 원하는 위치에 해당하는 위치 변경됨
- 어떤 방식을 사용하느냐에 따라 다른 메모리 위치에 데이터가 저장될 수 있음
5-3. 예제 문제
- 2차원 배열에서 특정 노드의 데이터 주소 값을 찾는 문제임
- 핵무선 방식과 열우선 컬럼 메이징 방식의 차이점을 이용하여 문제 해결함
- 행 주소는 기본 주소에 1을 더하고, 열 주소는 기본 주소에 2를 더해 찾아야 함
- 2차원 배열에서 'i+마이너스 1'을 이용하여 행 주소를, '아웃오더'를 이용하여 열 주소를 결정함
6. 자료 구조의 이해와 활용 - 효율적인 스택 및 연결 리스트 활용하기
6-1. 메모리리스트와 삼차원배열 개념의 설명
- 메모리리스트는 효율적으로 데이터를 메모리에 저장함
- (중요) 연결 리스트에서는 행렬처럼 데이터가 실제로 0인 경우가 대부분임
- 스파스 매트릭스는 이러한 행렬을 사용하여 메모리리스트로 표현한 것을 의미함
- (중요) 여기서 삼차원배열은 데이터 구조를 위한 기본 솔루션이며 이를 통해 주소를 구하는 방법론을 포함함
- 직관적인 자료 구조인 연결 리스트의 특성을 이해하는데 도움을 줌
6-2. 순서 구조와 스택의 활용
- 연결 리스트 중에서도 순서가 없는 연결 리스트 형태를 순서 리스트라고 함
- (중요) 스택은 데이터 삽입과 삭제 시 하나의쪽 끝에서만 발생하도록 설계되어 있음
- 스택의 초기상태(탑값이 제로, 바텀값이 제로)는 비어있음을 의미하며, 실제로는 모든 공간이 차지됨
- 스택의 데이터 삽입은 '푸시', '팝' 등의 연산을 통해 이루어짐
- 스택이 활성화되면 이에 따라 데이터 유입이 실질적으로 진행되며 이 과정에서 이데이터의 추가/변환을 체크하게 됨
6-3. 스텍 메모리, 탑-바텀 고유의 변환과 분석
- 탑과 바텀의 인덱스 변경과 관련된 논의를 이루어봄
- 해당 주소변경을 통해 각각 다른 탑과 바텀에 데이터가 들어가는 것으로 관찰됨
- 스텝의 핵심은 '두 개의 고정된 자리, 하나씩 오른쪽으로 늘려가는 데이터 튜토리얼'
- 어떤 튜토리얼도 모름으로써 탑 인덱스는 변화하며, 현재 상황에서 더 많은 가치를 저장해야 함
- 스폰 과정에서 첫 번째 이후의 데이터 역시 신중하게 처리되어야 함을 강조함
7. 스택의 기본 원리 및 활용방안 이해하기
7-1. 스택 메모리 소개
- 스택의 기본원리를 기반으로 강좌가 시작됨
- 스택의 특성 중 하나인 '데이터 반영'에 대해 설명함
- 스텍에는 선언된 사이즈와 함께 인덱스가 부여되어 관리됨
- (중요) 스팀의 사용을 위해 첫 번째 데이터 항목부터 마지막 데이터항목까지 각각 접근하며 수정 가능
7-2. 스택 메모리의 활용 - 삽입 알고리즘과 삭제 알고리즘
- (중요) 스킬의 삽입 알고리즘과 삭제 알고리즘에 대한 상세 설명 제공
- 삽입 알고리즘에서는 스탑의 탑 값이 클 경우 데이터를 스텍에 추가하여 가장 작은 값과 동등하게 만듦
- 삭제는 데이터 삭제 후 스탑 값이 감소하는 과정임
- 각각의 코드 작성 예제에서 주의 깊게 읽기 권장
7-3. 스택 메모리의 검색 및 추가 기능
- 스텍 메모리에서 데이터 검색 가능성에 대해 논의
- 재귀적인 성질 이용하여 스키트 트리 생성을 통해 검색 결과를 효율적으로 얻음
- 데이터 추가 또는 삭제 시마다 변화를 추적하면서 확인할 수 있음
8. 메모리 종류
8-1. 메모리 유형 이해
- 메모리는 코드, 부울릿, 스텍, 큐 등 다양한 형태가 있음
- 각각의 메모리 형식은 프로그래밍 언어별로 특징이 다름
- (중요) 메모리 상에 작은 단위(줄기)를 만든 것이 동퀀스 메모리, 줄기가 연결되어 나열되는 것이 누락 메모리임
- 데이터는 메모리의 일부이며, 공간이 차지하는 컴퓨팅 파워를 나타냄
- 메모리 모양에 따라 명령어 실행 및 조작 용이성이 달라짐
8-2. 이중 스택과 멀티 스택
- 스택은 재귀적 성격을 가지고 있으며, 한번에 두 개 이상의 데이터를 임시저장함
- 이중 스택은 여러 개의 스택을 결합하여 메모리를 제공함
- 멀티 스택은 여러 개의 스택을 연속적으로 생성하거나 분리하여 사용하는 것을 의미함
- 컴퓨터 내부에서는 복귀 주소 저장, 순환 프로그램, 산수식 표기법 등을 위해 스택이 사용됨
- 스택을 이용한 수식 변환, 그래프 그리기, 최적화 알고리즘 설계 등이 가능함
8-3. 큐와 스택의 비교
- 큐는 피벗 머리 방식으로 데이터를 추가/삭제하며, 노드에서 노드로 연결됨
- 큐리스트의 데이터 삽입은 프론트 인덱스 증가, 데이터 삭제는 프론트 인덱스 감소로 표현함
- 큐리스트 초기 상태는 비어있으며, 데이터 삽입 시 프론트 인덱스 증가, 데이터 삭제 시 프론트 인덱스 감소로 관리함
- 프론트와 리얼의 위치는 항상 같으므로 프론트 인덱스를 통해 데이터의 삽입/삭제 정보를 알 수 있음
9. 전체 강의 "프로그램 언어 - 강의 내용 이해"
9-1. 데이터 및 큐 연산 이해
- (중요) 데이터 삭제는 프론트(첫번째 원소) 값의 증가에 해당함
- 프론트 3 니어 옥으로 나타내며, 데이터를 추가하고 다른 데이터를 삭제함
- 큐플 조건은 현재 니어(현재 니어 값을)가 아들과 같으면 큐플(큐 중 하나를 포함)임
- 큐만 체인지, 참조되는 여부를 확인함
9-2. 큐와 독특한 데이터 형태 이해
- 데이터 삽입은 프론트를 증가시키고, 데이터 삭제는 프론트를 감소시킴
- 큐의 특징적인 사용형태인 Q 머신을 이해하면서, 데이터 삽입과 삭제를 확인함
- 큐를 이용하여 데이터 변환에 대한 실습 진행
- (중요) 디스크릿 큐, 불필요하게 참조되는 커널, 두 개 이상의 연결된 드 목록 등을 이해함
9-3. 데코딩 이란 무엇인가?
- 데코딩이란 숫자로 된 데이터를 인간에게 이해하기 쉬운 문자로 바꾸는 과정임
- 초보 프로그래머들이 필요한 기본 기술로서 강조됨
- 소개문서, 프로젝트의 명세화 등에도 사용됨
- 이 결과 파일을 읽기 쉽게 만들어줌으로써, 프로그램의 실행과 관리를 용이하게 함
10. 자료 구조와 네트워킹
10-1. 자료 구조의 분류 및 이해
- 네트워킹에서는의 자료 구조를 선정구조와 비선형인데 가장 기본적인 형태임
- (중요) 이러한 데이터의 저장과 전송 과정에 필요한 자료 유형들을 설정하는 것이 중요함
- 각각의 데이터 유형별 사용되는 메모리 표현 방법에 대해 설명하고 있음
- 본 강의에서 소개된 인재들은 보통 리스트 형식에 가깝게 나타남
- 표본 중간에 등장하는 튜브 행렬 자료 구조에 대한 이해가 요구됨
10-2. 평등 불변형 연결 리스트 이해하기
- 평등 불변형 연결 리스트에서 어떤 부분을 지우더라도 다른 부분에도 영향을 미치지 않는다는 것을 설명함
- 특히, 삭제할 때 어떤 포인터 값만 삭제하면 다른 부분에도 그 영향이 없음을 확인하였음
- 이 경우 기존 객체를 그대로 유지하면서 해당 위치를 절대 변경하지 않으면 됨
- (중요) 그러나 데이터의 기억공간을 낭비하게 될 수 있으므로 주의해야 함
10-3. 원형 연결 리스트 이해하기
- 원형 연결 리스트에서 핵심 개념인 '헤드'란 무엇인지 설명함
- 외부에서 A를 찾아올 때, 순차적으로 탐색하며 함께 반환하는 것에 대한 상세 내용 제공
- 하지만 입력이나 출력 시 잘못된 명령 또는 단순 노드를 찾아 잘못된 결과를 반환할 수도 있음
- 이럴 경우에는 반드시 데이터 구조가 복원 가능한 형태여야 함
- (중요) 원형 연결 리스트의 이점을 숫자 부와 링크 부, 그리고 생각진 데이터 해 검색 가능성이라며 설명함
화자 1
00:11
자 전국에 계시는 우리 엠투엠 생방송 안방 가족 여러분 계속해서 뜨거운 감동의 수업을 함께 하겠습니다. 좋습니다. 그죠 오늘 이 메아리가 더 잘 먹히네 예 좋습니다. 자 이제 우리 앞 시간에 운영 체제 다 끝났다 그죠 10분 동안 책거리 했나 병태 여 손자야 아 그렇죠. 자 화이팅 한번 하고 이제 드디어 세 번째 과목 환상적인 과목 예 좋습니다. 데이타베이스로 넘어갑니다. 그죠 자 이 데이터베이스 함 보자 말입니다. 자 이 데이타베이스 역시 어 어 데이터베이스 좋습니다. 이 데이터베이스 1번 써볼까 데이타 베이스 그죠 역시 20 문제 나온다 이 말입니다. 예 또 20 문제도 나오지만 실제 이 데이터베이스가 정말 이제 우리 조직에서 또 여러분의 취업에서 굉장히 중요하겠습니다. 그래서 요즘은 과의 데이타베이스 시대라 해도 과언이 아니다.
화자 1
01:09
그래서 또 개인적으로는 데이터베이스의 전문가도 우리나라에 많이 양성을 해야 됩니다. 그런데 아직까지 아주 데이터베이스 전문가들이 많이 없어요. 그죠 그래서 너무 안타까운 게 현재 우리 IT 쪽에는요 사람이 없어 난린데 어 여러분들은 취업이 안 돼서 난리고 그죠 참 안타깝습니다. 그죠 우리 IT 정말 기술자는 필요한데요. 기능인들만 양성하고 그죠 어 이런 시대에 어 이게 무슨 말입니까? 그죠 아주 기술자가 필요한데 이 태백 20대 태만이 백수라 카고 386 남자 나이 38세면 선택의 길을 있어야 되고 그죠 사오정이 뭐고 45세 정년퇴직을 맞이하고 오히려 또 56살까지 회사의 개기면은 영원한 도둑놈 취급받는 이런 시대에 우리 IT 제트키 정보처리 기사를 가지고 무장하여 여러분은 행복을 선물 받고 진정한 JJH의 제자로 탄생하소서 좋습니다.
화자 1
02:07
그래서 데이터 입에서 20 문제 나오는데 우리가 98년까지만 해도 여러분이 자료 구조에서 이 시험 문제 나왔어요. 데이터베이스 개념이 이 데이터베이스가 도입된 지가 얼마 안 되거든요. 신항문입니다. 그래서 우리 대학에서도 이 데이터베이스를 실제 전공한 사람들이 많이 없어요. 그래서 98년까지는 데이터베이스라는 개념이었고 이 자료 구조에서 문제가 20문제 나왔단 말이야. 근데 요즘 출제 범위가 과거의 98년 이전에 자료구조 20문제 나왔던 걸 포함해서 나오니까 공부의 양은 많아지고요. 깊이는 없어지고 이래 됐어요. 좀 안타깝지 그렇지만 내가 엑기스를 잡아서 완벽 속성으로 때려잡자 이 말이야. 그래서 자료 구조에서 지금도 과거 20문제 나왔지만 통틀어서 한 7문제 또 뭐 어떤 데 6문제도 나오되 총 6문제에서 8문제 통상 한 7문제가 많이 나와요. 그죠 나오는데 자료 구조 각각의 나와요. 그죠 각 파트에서 자료 구조 1번 오늘 한 1번 파트에서 한 2문제 이 데이타벳은 골고루 나온다고 봐야 됩니다.
화자 1
03:05
뒤에 배울 요것도 2문제 2문제 1문제 여론선에서 요건 또 2문제 나올 수도 있고요. 그다음에 이제 데이터베이스 시스템의 개요에서 2문제 그걸 골고루 나온다고 보면 됩니다. 1~2문제 나오겠죠. 데이타 모델링이 중요하잖아요. 2에서 3문제 그죠 관계 데이터 모델링 역시 거 요 두 문제 나오겠죠. 보통 한 두 문제 요거는 이제 두 문제에서 세 문제 요거 한 두 문제 데이터베이스 설계해서 두 문제 전기화해서 1~2문제 고급 DBS에서 1~2문제 그죠 통상 이 정도 좀 중요한 파트가 이제 좋게 이제 구성이 됩니다. 뭐 다 중요하지만 그러니까 디비는 데이터베이스는 아마 여러분 골고루 문제가 나온다 그죠 각 챕터 한 2문제씩 예상하면 좋습니다. 알려나 역시 여러분 좋아 요런 개념을 가지고 이 데이터베이스 역시 1편의 드라마처럼 1편의 영화처럼 자 넘어가 봅니다. 자 바이올레니 좋습니다.
화자 1
04:03
새로운 과목 항상 새로운 걸 만날 때 우리 신선하제 설레고 여러분들도 컴퓨터 구조에서 운영체제를 만났고 이제 운영체제를 끝나고 데이터베이스라는 새로운 세계를 가슴 설레야 병태야 설레는 마음 나는 절대로 안 설렌다 왜 이 강의를 수천 번을 들어 했기 때문에 질린다 질려 니는 설레지만 알겠어요. 자 좋습니다. 자 데이터 어 자료 구조부터 보자 그죠 자료 구조가 형성이 돼서 파일 그리고 데이터베이스가 되는 거니까 아주 원천적인 이야기부터 해야 됩니다. 데이터 스트럭처 왜 인제 우리를 자료를 구조화하느냐 이 이 데이터 스트럭처를 공부를 하느냐 자 여러분들 실제 우리 정보처리 기사가 뭐고 우리 앞에서 배운 이 컴퓨터의 1과 0밖에 모르는 하드웨어와 이 운영 체제의 도움을 받아 가지고 운영체제가 이 하드웨어들을 활성화해 가지고 우리가 컴퓨터를 쉽게 사용할 수 있도록 많은 편의성을 제공하잖아.
화자 1
05:00
그죠 그래서 우리는 그런 기반 그런 인프라에서 이제 여러분들은 컴퓨터하고 직접 대화를 하는 사람이 정보처리 기사야 즉 여러분의 생각을 프로그램으로 컴퓨터가 알아듣는 언어로 프로그램을 개발해 가지고 직접 프로그램에서 컴퓨터를 조장해주는 사람이 정보처리 기사 데이터를 정보로 만들 수 있는 사람 그래서 오늘날 컴퓨터는 내가 DPI라 했잖아. 즉 우리 인간의 일거리 데이터를 프로그램 여러분이 내린 명령을 주십시오. 즉 프로그램에 의해서 컴퓨터는 오토플라세싱 해서 내가 원하는 일감 정보 결과가 있는 데이타 정보를 만들어주고 그죠 그래서 데이터를 정보로 처리하는 사람이 정보처리 기사 산업기사 그래서 기사 식당에서 밥 먹을 수 있는 사람 맞나 그래서 프로그램을 개발할 수 있어야 됩니다. 근데 이 프로그램을 개발할 때 여러분 가장 중요한 게 내가 무슨 뭐라 했냐 오케이 공간대 시간 문제라 했겠죠.
화자 1
05:54
소프트웨어 하는 사람들은 프로그램 소프트웨어에 하는 사람들은 하드웨어를 만드는 사람의 목표는 뭐고 오케이 가격 프라이스 대 퍼포먼스 가격대 성능 문제잖아. 이왕이면은 좋은 성능의 기계 가 원가 절감 그죠 이거고, 지금 우리 정보처리기사는 바로 항상 공간대 시간 문제를 이야기해야 돼요. 시간은 뭐야? 즉 효율적으로 프로그램 자세 고려 사항 뭐다 저장 공간의 공간 문제와 생각하라 명령어에 실행시간 신속성을 고려하라 그렇죠. 그중에서도 이 저장 공간의 효율성이 굉장히 중요합니다. 내가 처리할 데이터를 어떤 식으로 저장하고 어떤 식으로 운영하고 어떤 식으로 관리하느냐 그죠 이거다 이 말이에요.
화자 1
06:37
그죠 이걸 학문적으로 접근하자 되겠나 그래서 내가 처리시킨 일거리들을 어떤 식으로 메모리 공간에 저장해 가지고 공간의 낭비도 안 늘어나도록 또 이 데이터가 신속 정확하게 운영처리되도록 그걸 학문적으로 알고리즘적으로 만들어 나가는 게 자료 구조다 이 말입니다. 그래서 자료구조는 프로그램의 사용을 위한 자료 데이터를 메모리 공간 내에서 저장하는 방법 또는 저장된 그룹 내에 존재하는 자료와의 관계 또는 처리방법 등을 분석해 가지고 효과 효과를 노리는 게 자료 구조의 정리다 이 말입니다. 되겠나 그래서 우리가 자료구조를 공부하는 거예요. 데이터를 무식하게 처리하는 것보다 효율적으로 처리하는 방법을 지금부터 배운다 됐죠 넘어갑니다. 자 현재 내가 처리할 데이터를요 컴퓨터 메모리에 표현하는 방법은 크게 선형 구조 선형 리스트와 비선형 구조 라니니어 리스트 리스트 빠졌네 비선형 구조로 나눴습니다.
화자 1
07:36
선형 구조 또는 선형 리스트 비선형 구조 비선형 리스트 자 이 선형 구조는 뭐냐 하면은 내가 처리할 데이터를 리니아 연속적으로 리니악하는 게 뭡니까? 아주 어 차 데이타들이 차별화 안 되도록 아주 일관성 있게 리미아 이렇게 저장하는 거고, 비선형은 뭡니까? 선형 자 데이터를 어떻게 한다. 추리와 데이터들을 이런 식으로 다 일률적으로 하는 게 아니고 데이터의 상하관계를 두는 거예요. 추리라든지 또는 이렇게 그래프라든지 이런 데이터들을 이런 식으로 메모리 표현하는 게 비선형 구조고 일률적으로 표현하는 게 선정구조예요. 그죠 그러니까 선정구조는 데이터들 간의 차등성이 없는 것들 예를 들면 성적 데이터라든지 여러분들 뭐 여러분 간에 무슨 위아래가 있나 근데 예를 들면 군대의 계급관계라든지 어떤 어떤 회사의 조직관계 이런 것들은 뭐야? 비선형 구조로 표현하는 게 표현 효율성이 뛰어나겠죠. 그렇죠.
화자 1
08:34
그런 이야기다 그죠 자 이런 선정 구조에 또 데이터를 표현하는 방법 구조화하는 방법은 순서구조 즉 순서 리스트로 표현할 수도 있고 링크드 리스트 연결 리스트로 표현할 수도 있다. 그거죠. 자 순서 리스트에 연속 배열 배연료 표현하는 기법이 있고 아주 중요한 스텝 큐 대큐 이런 4가지 데이터 저장기법 표현기법이 있더라 이 말이야. 알고리즘이 있더라 이 말이야. 연결 리스트는 뭐다 아주 똑같은 말이지만 단순하게 연결하는 구조 원형으로 이중 원형은 이중으로 이중 원형 요런 게 있던 거예요. 그죠 요런 것들이 시험에 나옵니다. 자 비선형 구조는 2가지 다 추리구조 목구조 어 모든 데이터를 나무 구조 추리 개념으로 막 그 데이터의 관계를 표현하는 추리 구조가 있고 그래프 구조로 그죠 그래프 구조로 데이터들 간의 관계를 규명하는 이런 방법이 있어요. 그죠 이게 오늘날 컴퓨터에서 데이터를 메모리로 표현하는 모든 방법들입니다. 아니 나 전체 총괄 한번 전체 구경 한번 하자 이 말이에요.
화자 1
09:32
그래서 하나씩 하나씩 보는 거다 그렇죠. 그럼 자료구조 투는 무슨 소리냐 하면은 이렇게 표현된 데이터 속의 집단들을 어떤 식으로 설치 검색하느냐 특정 데이터를 검색하는 거고요. 또 그 데이터들을 이제 어떤 기준에 의해서 정렬 정렬 정렬 자로 정렬 김정열 아 요런 방법이에요. 그죠 그래서 대학에서는 자료 구조 원 1학기 자료 구조 2 1학기 이거 1년 배우는 거다 1년 배우는 걸 여러분 이거 한 2시간 만에 자살해버려 아니다. 오늘 한 끝내버립니다. 그렇죠. 대학에서 1년 배우는 제재지한테 오니까 완벽 속성으로 환상적으로 2시간 말이 되나 이거 그런데요. 제재지한테 2시간 들었는 게 대학 1년 배운 것보다 훨씬 많이 배우고 깊이 있게 배운답니다. 어 1년 등록금이 얼마고 1년 또 요즘 천만 원씩 간다 카던데 쟤 여자친한테 얼마나 했노 느그 밥도 하나 안 사주고 어 알겠냐 병태 손자야 밥 먹는 거 고만 먹어 밥도 하나 안 사주고 말이야.
화자 1
10:32
이런 명강의를 그래서 인제 이런 자료 구조를 토대로 이제 컴퓨터가 파일 형태로 또는 DS 배울 데이타베이스 개념으로 된다. 그죠 그래서 원천적인 걸 알고 파일로 데이타베이스로 넘어가자는 겁니다. 그죠 원리를 알자 이런 이야기지 자 그러면은 함 보자 이 말이야. 자주 우리가 가벼운 마음으로 그죠 자 이것은 두 문제 예상됩니다. 예 자 이 선형 구조 여러분들 크게 데이터를 메모리에 집단화 표현하는 방법은 선영과 비선형 있었다고 했잖아요. 그죠 알겠나 이 선형 구조에는 크게 또 여러분 뭐 어 순서 데이터의 순서가 중요한 순서 리스트와 또 연결 리스트 포인트 개념 포인트 연결해 들어가는 연결 리스트가 있는 거야. 어허 목이 좀 아우 안 좋으네 예 이런 자 요 물 좀 먹어도 되겠지 생중계도 뭐 할 수 없다.
화자 1
11:31
저 물 1잔 묶고 해야 돼요. 목이 응 이해해라 느그도 밥 묵잖아. 아 이거 방송 사고가 났네요. 방송사고 땡큐 예 물 1잔 오늘 내가 너무 피곤해요. 응 괜찮제 물 먹는 거 아 좋아요. 자 파이팅 합시다. 선형 리스트는 기업 공간에 연속적으로 저장하는 순서 리스트 다른 말로 연접 리스트와 포인트 동그래미 포인트를 갖는 연결 리스트가 있습니다. 즉 순서 리스트는 아직 포인트 안 배웠지 포인트가 없고요. 연결돼서는 반드시 포인트 개념을 이용해야 된다. 있고 이런 리스트라는 구성 요소를 우리는 원소 또는 노드라 합니다. 그죠 자 이런 말 자 여러분들 자 요거 보고 할까 자 이게 만약에 메모리를 하자 메모리 주기억 장치 어 메모리예요. 이 메모리에 에 여러분들 메모리는 전부 다 어드레스 주소가 부여되잖아요.
화자 1
12:30
주소도 부여됐는데 메모리 90번지부터 94번지가 어떤 관련 있는 데이터들이 집합이에요. 이렇게 요기가 어 이렇게 자 메모리는 여러분 뭐고 메모리와 메모리와 니스트의 차이보다 알아요. 니스트 에 메모리와 리스트 데이터를 저장하는 저장 기억 공간은 메모리입니다. 기억공간 그러니까 여기 한 뭐 0번째부터 쭉 이거 전부 다 메모리예요. 이 메모리에서도 데이터가 들어있는 부분 현재 구십 번지에서 94번지까지가 데이터가 들어 있잖아요. 데이타가 들어있는 데이터가 들어있는 메모리가 뭐냐 리스트입니다. 알겠나 여기 리스트 가잖아. 암흑과의 조폭 리스트 암흑과의 리스트 보면 뭐야? 내 친구들이랑 딱 상칸 흑공 피바다 떡대 쫙 있잖아요. 뭔 말인지 알겠나 메모리는 데이터를 집어넣을 수 있는 공간은 메모리고 이 메모리 공간에 데이터가 들어가 가지고 하나의 집단 자료 구조화되는 이걸 우리는 뭐다 리스트인데 이 리스트가 이제 뭐가 있다.
화자 1
13:28
순서 개념으로 순서 리스트가 있고 연결 리스트가 있는 거예요. 그죠 알겔라 선정 구조에는 그렇죠. 그러나 이 인제 순서 리스트부터 보자 이 말입니다. 되나 자 이 순서 리스트는 다른 말로 연속 배열 저장 리스 데이터들 아주 순서에 입각해서 연속적으로 쫙 뿌리는 구조고 다른 말로 연접 리스트 이웃한 데이터들이 전부 다 이웃 이웃 쫙 순서 있게 나열돼 있다는 거예요. 그리고 축차 리스트라고 합니다. 축차 데이터 계속 쌓아나가는 개념이다. 같은 말이고요. 연속되는 메모리에 저장되어 있는 리스트를 순서 리스트라 합니다. 그죠 요런 거 요게 인제 순서 리스트예요. 자 이런 순서대의 특징은 가장 간단한 자료 구조죠 가장 간단한 자료 구조다 에 그러니까 기억 장소의 효율성이 좋다. 이게 무슨 말이냐 다른 말로 기억의 메모리의 밀도성이 밀도성이 1이 되는 구조입니다.
화자 1
14:21
이게 뭐냐 하면은 현재 내가 이렇게 해놨지만 현재 메모리의 밀트 수는 뭐냐 하면은 메모리를 리스트를 형성하고 있는 총 비트 수 어 리스트에 뭐 이것까지 알 필요는 없이 싶은데 총 비트 수분의 실제 데이터가 들어가 있는 비트수 실제 데이터 이 비트 비트 수를 기업 공간의 밀도성이야 그러니까 순서리스트는 이 공간이 100이라면 이 100에 전부 데이터가 다 들어가 있는 거예요. 이거 내 A죠 A 비 빡빡하게 씨 디 이 그렇죠. 그러니까 순서리스트는 가장 간단한 간단하게 데이터를 저장하는 방법이고 기업 공간의 효율성이 좋다. 그죠 기업 공간 낭비가 없다. 다른 말로 시어머니는 원리만 하면 돼요. 그죠 기업 공간의 밀도성이 좋다. 효율성이 좋다. 낭비가 일어나야 낭비가 없다. 기업공간 낭비는 없어요. 어 그리고 접근 속도가 빠릅니다. 뭐냐 바로 에이 다음에 비를 처리하거든. 에이 옆에 비 있고 비 옆에 씨 있고 씨 옆에 디 있으니까 접근속도가 팍팍 빠르다 이 말입니다. 되나 그런데요.
화자 1
15:18
요런 장점은 있는 반면에서 이런 단점이 있더라 가장 중요한 이 집단에 이 현재의 리스트를 만약에 우리는 뭐 리스트죠 이 리스트에 특정 데이터의 삽입 데이터를 여러분 이 데이터 집단의 새로운 데이터를 집어넣을 수 있지 나는 F라는 데이터를 집어넣을 수 있죠. 어 데이터에 삽입하고 삭제 시 작업이 굉장히 어렵다 즉 다른 말로 데이터의 이동이 심합니다. 다른 말로 리패킹 현상이 발생합니다. 다른 말로 데이타가 데이타의 복사가 심합니다. 다 같은 말이에요. 여러분 앞에서 배웠나 이 순서 리스트의 이름을 붙여버리면 이게 뭡니까? 우리 앞에서 배운 순차 파일입니다. 순차파일 어 배웠제 즉 싸움이 되어 버립니다. 3 어 그러니까 이 순서 리스트의 이름을 붙여버리면 뭐다 순차 파일입니다. 즉 싸움 방식이었죠. 그죠 어 이렇게 되는 거예요.
화자 1
16:11
즉 뭐냐 아니 나는 에프라는 놈을 에프라는 놈을 두 번째 자 순서리스트 여러분 주소가 있는 반면에 이 리스트의 순서를 매긴 인덱스가 있죠. 인덱스 인덱스 이거는 이 리스트 이 데이터 집단에 첫 번째 나옵니다. 첫 번째 처리 대상이다. 이건 두 번째다 이렇게 데이타의 순서를 매기는 걸 인덱스 값 메모리의 주소값 외에 메모리엔 자동적으로 주소가 부여되는데 이 주소값 외에 새김값도 부여됩니다. 그럼 이게 뭐야? 이 에이 1이 뭐다 에이는 이 리스트의 첫 번째 처리 대상이다. 이 말이야. 이건 두 번째고 그렇지 나는 에프를 두 번째 집어넣고 싶으면 어때 이거는 순서 리스트는 여기 에프를 넣음으로써 비 C D E가 전부 다 뒤로 이동해야 됩니다. 만나 하나의 데이터를 삽입하기 위해서 수많은 데이터가 이동해야 됩니다. 다른 말로 데이터를 리펙 이 집단 다시 패킹 해야 돼 데이터의 복사가 심합니다.
화자 1
17:06
만약에 데이터 1만 개면 어떤 1만개 만개면은 두 번째 F를 집어넣으면요 데이터가 9998번 이동해야 됩니다. 요런 단점이 있는 거예요. 요런 단점 전부 같은 말이다. 또 다 같은 말입니다. 요 단점이 있다. 이 말이에요. 되겠나 그래서 이 순서 리스트는요 또 이 순서리스트에 뭐가 있나 배열도 있고 의뢰의 그리고 스텝 큐 대큐가 있는데, 다 요런 장단점이 있습니다. 알겠나 자 요런 게 순서 리스트 출제가 많이 된다. 알겠죠. 데이터를 쫙 막 데이터를 내가 10개 집단화시킨다. 메모리를 표현한다. 카면은 순서 이렇게 뭐예요? 1번부터 열려오면 순서 있게 쫙 메모리 갖다 놔 버리고 하나는 집단화 리스트화 해버리는 거지 그죠 되겠나 요런 구조입니다. 요런 구조 그래서 어 첫 번째 데이터를 인제 자 여러분 이 메모리 속에 들어가 있는 요놈의 뭐 쉽게 말해서 데이터라 합니다.
화자 1
17:59
메모리 속에 한 집단 속에 하나의 요 값을 작은 데이터 또는 원소 어 이 리스트의 원소 또는 요소 엘리먼트 다 같은 말이다. 그리고 에 데이타 원소 요소 다른 말로 또 노드라고 합니다. 노드 또 그래프에선 이걸 정점이라 합니다. 정점 버티기스라 합니다. 버티기스 다 같은 말이에요. 리스트 속의 하나의 데이터를 데이타 또는 원소 또는 요소 또는 뭐 하나의 또 아이템이라고도 합니다. 어 하나의 항목 같은 말이에요. 노드 또는 버티스라고 합니다. 알겠나 그래서 이니스트 에이가 헤드노드 첫 번째 노드다 이 말이죠. E는 뭡니까? 테일로드 마지막 노드 마지막 데이터 라인 말입니다. 그래서 여러분 앞으로 데이터 리스트 속에 이제 이니스트는요 현재 이니스트는 다섯 개의 데이터로 구성되어 있죠. 다섯 개의 원소로 구성되어 있죠. 다섯 개의 노드로 구성되어 있죠. 다섯 개의 버티스로 구성되어 있죠. 다섯 개의 아이 사이트 항목으로 구성되어 있죠. 알겠나 같은 말 연대 속지마 다 같은 말입니다.
화자 1
18:59
그래서 5개가 하나의 집단을 이룬다면 쫙 나열돼있는 이런 구조다 이 말입니다. 됐나 그래서 에이가 제일 첫 번째 처리될 데이터 노드를 우린 헤드노드 마지막에 처리될 데이터를 페일로드 마지막 노드라고 하는 거죠. 당연한 이야기 자 순서 리스트의 정의와 특징을 봤제 그다음에 연결 리스트 한번 보자 이 말입니다. 자 방금 만든 순서 리스트는 데이터를 메모리에 쫙 뿌려버리는 거죠. 그래서 그걸 집단화시키는 거예요. 자 연결 리스트는 그렇지 않아요. 자료를 연속적으로 저장하지 않고 임의의 기억 공간에 기억시키되 자료 항목의 순서에 따라 노드의 포인트 부분을 이용하여 서로 연결시킨 자료 구조다 이게 뭐냐 이 말입니다. 아까 제가 순서 리스트는 데이터를 연속적으로 할당했지 근데 쉽게 말해서 연결 리스트는 데이터를 분할할당한다. 분할할당 연속적으로 저장 안 해도 여기에 저장시키고 요거 저장시켜 저장시켜 놓고 무언가를 연결해 버리면 되는 거예요.
화자 1
19:59
그러면 하나의 집단으로 해석해 준다. 이 말입니다. 연결 리스트 이 연결 리스트는 바로 이 메모리와 독립성 메모리가 독립적으로 놀아요. 독립적이고 아까 순서 있었던 메모리 종속적이죠. A 다음에 반드시 B가 와야 되고 B다음에 반드시 씨 메모리에 종속적이고 이 연결 리스트는 에이 다음에 디가 와도 되고 디 다음에 씨 씨가 와도 되고 씨 다음에 비가 와도 되고 이 메모리하고 관계없어요. 메모리 위치하곤 관계없는 거다 이 말입니다. 그죠 예 그런 이야기인데 자 이거 연결 리스트는요 자 봐봐요. 아까 순서리스트는 여러분 실제 아까 봐요. 아까 내가 데이타와 노드가 같다고 했잖아. 근데 순서리스트는 이 노드가 1개의 노드가 곧 노드가 데이터입니다. 노드가 하나의 노드가 바로 데이터예요. 데이타 즉 이 노드는 하나의 데이터를 저장하는 저장소라고 생각하면 돼요. 노드가 그러니까 순서리처럼 1개의 노드에 데이터가 들어가 있죠.
화자 1
20:58
그러니까 노드의 거로 데이터야 근데 연결 리스트는요 하나의 노드 구조가 있다. 이게 노드 구조예요. 노드 구조 어떠냐 실제 데이터만 있는 게 아니고 링크부가 있다는 거야. 이게 굉장히 중요한 링크부 어 연결 리스트에서 하나의 노드 구조는 순서리스트의 노드 구조는요 노드 이콜은 노드 안에 데이타 실제 데이터밖에 없어 데이타 데이타만 있어요. 근데 연결 리스트는 연결 리스트에서 노드 구조는 어떻다 데이타부가 있지만 데이터부 외에 링크부가 있어요. 어 데이타부와 링크부로 구성되어있는 게 연결했을 때 하나의 노드 구조야 이해 되나 그래서 실제 데이타 에이가 있지만 요 링크부가 뭐냐 에이라는 데이터 다음에 처리될 데이터의 주소 값이 들어가는 거예요. 링크 어 자 이 링크 보면 뭐야? 에이 다음에 연결은 주소값으로 즉 에이 다음에 처리될 데이터의 주소 주소 데이터가 들어갑니다.
화자 1
21:53
이 주소 데이터를 주소 여기에 링크 부분 뭐가 들어간다 요 데이터 다음에 처리될 주소 데이터가 들어간다 주소 값이 들어간단 말야 이 주소 데이터를 주소 값을 우리는 뭐라 한다. 포인트라 합니다. 포인트 포인트 데이터입니다. 포인트 이걸 우리가 포인트라 할게요 포인트 여러분 개새끼도 포인트 있죠. 포인트 사냥개를 포인트라 안카나 와 그러노 포인트는요 탁 이 포인트 가리키는 거예요. 주인이 휙 하면 거기에 확 뛰어갑니다. 획 들어갑니다. 포인트 포인트 그 사냥개를 포인트라 한다. 알겠나 이 포인트는 보신탕으로 먹으면 안 돼 이 보신탕은 똥개가 좋습니다. 근데 갑자기 왜 이런 이야기 하나 에 알겠나 포인트 사냥개 휙 알겠죠. 즉 자 연결 리스트는요 아까 순서 리턴은 뭐고 노드 이콜로 데이터제 그러니까 왜 포인트가 필요 없잖아요. 포인트가 필요 없잖아. 왜 에이 다음에 바로 비가 위치해 있으니까 비 다음에 그러니까 바로바로 처리되는 거예요. 근데 연결돼 있어선 안 그렇단 말이에요. 연결된 노드 구조는 데이터부가 있고 연결부가 있기 때문에 비야 어디에 있든 상관이 없다는 겁니다.
화자 1
22:52
그죠 뭔 말인지 알겠나 자 이렇다 이 말입니다. 메모리 구십 번지부터 94번지까지가 연결 리스트로 구현되어 있다. 합시다. 연결 리스트로 이제 여기 데이터가 들어가 있는 거예요. 또 이 연결 리스트 인덱스가 필요 없죠 데이터의 순서가 필요 없죠 순서리스 같으면 여기 에이 들어가고 그다음에 비 이렇게 순서 리더가 어디 들어가 요거 에이 들어가고 비 드가고 요렇게 들어가 줘야 되는데 연결 리스는 뭐야? 에이가 여기 있어요. 여기 에이가 메모리 92번지 등이 있는 거예요. 92번지 그런데 에이 1개의 노드 구조를 보니까 실제 데이터 에이도 있지만 에이 다음에 주소값이 딱 있는 거예요. 이게 뭐야? 에이란 비는 몇 번지 있다는 거예요. 오케이 90번지에 있단 말이야. 90번지 가란 말이야. 90번지 가니까 비라는 데이터가 있는 거야. 알겠나 어 그리고 또 비를 처리하고 보니까 93번지가 있어 이게 뭐야? 93번지 가면 뭐가 있단 말이고 씨가 있다는 거예요. 알겠어요. 또 씨를 처리하고 딱 보니 91번지가 있거든. 91번지 가면 뭐가 있다는 말이고 디가 있다는 거야. 또 디를 처리하고 딱 보니까 아 94번지가 뭐가 있다. 이가 있단 말이야. 그래 요거는 뭐야? 다음에 연결되는 거 없다.
화자 1
23:51
요걸 어 뭐여 연결된 주소값이 없는 포인트를 늘 포인트 어 늘 포인트라 합니다. 다른 분 리포인트 또는 늘 포인트 어 주소값이 없는 표현은 요렇게 또는 요렇게 합니다. 알겠나 어 그러니까 위치하고 전혀 관계가 없는 겁니다. 그죠 자 연결 리스트의 노드 구조 중요하다 실제 데이터부와 요 데이터 다음에 처리된 데이터의 주소값 이런 주소 값을 우리는 뭐라 한다. 포인트 자료다 주소 데이터를 포인트 데이터 시에서 굉장히 중요합니다. 이 포인트로써 내가 처리할 데이터 좀 연결시켜 버리는 거예요. 그러면은 이거 하나의 리스트죠 하나의 집단이잖아요. 그죠 그래서 메모리에 에이 다음에 비 와야 되는 게 연속적으로 할당되는 게 아니고 분할만 아무 데 있어도 위치하곤 관계없습니다. 메모리 위치하고 전혀 관계를 안 봤다. 즉 메모리와는 독립적으로 논다는 겁니다. 독립 인디펜던스 알겠어요. 근데 순서리스는 연속적으로 놀아야 되겠죠. 종속적으로 놀아야 되겠죠. 에이단이 반드시 비가 와야 된다는 거야. 되나 예 요런 겁니다. 그러면은 헤드 노드가 뭡니까? 에이죠.
화자 1
24:51
제일 처음에 처리될 데이터가 에이고요. 마지막에 처리될 데이터 이가 테일 로드고 마지막 노드의 포인트는 반드시 뭐가 되노 테일 로드의 포인트는 2속 없는 포인트 무슨 포인트 공백 포인트를 포인트입니다. 포인트 POINTR이다. 잘못됐네 예 포인트 좋습니다. 됐나 이해되나 자 그러면은 이렇게 데이터를 집단화시키는 거예요. 어떤 특징을 가지고 있냐 말이에요. 장점이 뭐다 데이터의 삽입과 삭제가 굉장히 좋다. 아까 전에 아까 전에 뭐요 아까 순서리스 에프 여면요 에프를 집어넣기 위해서 수많은 데이터 이동했지만, 이놈은 뭐다 에프를 아무 데다 놓으면 메모리에 에 에프 집어넣어놓고 이놈의 90 어떻게 하냐? 이게 만약에 100번 지래버리면 되겠죠. 에프를 그러고 ABCD 이 다음에 여기 뭐야? 백 집어넣고 에프는 요렇게 하면 되죠. 어 그래 뭐고 컴퓨터는 에이 처리하고 비 처리하고 C 처리하고 D 처리하고 100번 지어가서 에프로 처리하고 즉 이 집단의 F를 집어넣는데 데이타 이동이 전혀 일어나지 않습니다. 맞아요. 맞아요.
화자 1
25:50
어 주소 값만 변경하면 되는 거다 그죠 즉 데이터의 삽입과 삭제가 새로운 데이터 새로운 원소 새로운 요소 어 삽입이나 또 기존에 삭제할 때 굉장히 좋다. 즉 어 그런 거 연속적으로 기억 공간이 없어도 저장이 가능합니다. 그죠 저 이게 무슨 말이냐 기업 공간과 뭐 독립성이 유증된다는 거요 즉 위치하고 관계없다는 그런 이야기고 단 기업 공간의 낭비가 일어납니다. 왜 포인트 때문에요. 왜 자 이거 이거는 쓸데없는 실제 기억 공간의 데이터만 기억하면 되는데 이 포인트 때문에 이 공간이 이 공간이 낭비가 되는 거죠. 그죠 그래서 연결 리스트는 좋지만 메모리가 낭비가 일어납니다. 즉 기업공간의 밀도성은 떨어지죠 아까 순서리스는 뭐고 요 로드 전체가 데이터가 들어가 있죠. 필요한 데이터가 들어가 있는데, 알겠나 요런 포인트 때문에 포인트는 정보죠. 정보 예 이거 데이타 보고 포인트 분이 정보부죠 정보부 정보부 에 중앙 정보부가 아니고 정보부예요.
화자 1
26:46
그러니까 이 정보라는 거는 실제 메모리 데이터만 들어가야 되는데 이 포인트 정보에서 좋기는 좋지만 이놈 때문에 메모리를 할당해야 되기 때문에 기억 공간의 낭비가 발생하고 접근 속도가 늦습니다. 왜 에이 처리하고 알아 가지고 90번지 가서 처리하고 또 93번 저기까지 가서 처리해요. 접근속도는 넣었죠. 아까 순서에선 바로바로 처리되는데 알겠나 요런 장점과 단점들이 있다는 거예요. 됐나 그래서 오늘날 이제 그 선정 구조로 선정 구조로 데이터를 저장하는 방법은 예 순서 구조하고 연결 구조가 있는 겁니다. 그죠 그리고 자 요놈이 실제는 뭐예요? 연결리스트의 일반적인 표현 즉 논리적이고 논리적은 뭐야? 에이 다음에 비 처리되고 비처리되고 93번 이렇게 처리되는데 물리적으로 뭐야? 연결 리스트의 메모리 즉 물리적 표현을 어떻게 돼 실제 물리적은 아무리 이 처리 순서하고는 관계가 없는 거죠. 막 뒤죽박죽 섞여도 된다는 겁니다. 그죠 요거는 논리적 표현 요놈은 물리적 표현입니다.
화자 1
27:45
되겠나 그래서 요렇게 여러분 크게 순서 리스터와 연결 리스트 정리해 놓으면 된다. 예 아주 중요한 이야기들이제 그래서 여러분들 정리 잘 됐나 자 넘어가 봅니다. 자 그럼 지금부터는 가벼운 마음으로 보면 돼요. 자 이제 이런 순서리스트의 큰 배경 하에 이제 대표적인 게 뭐야? 배열입니다. 순서리스트의 가장 대표적인 자료 알고리즘 자료 구조는 배열이다. 으레이 배열 의뢰이입니다. 그죠 이러면 수학의 행렬의 개념을 가지고 만들어내는 거예요. 이런 배열 뜻이 뭐니 무슨 몇 자고 동배배 같을 배 같은 놈을 나열한다. 즉 데이터의 성격과 구조가 동일한 데이터인데 성격과 구조가 동일한 데이터를 순서 있게 나열한 자료구조 나열한 선정 리스트 이걸 우리는 배열이라 합니다. 같을 배 나열입니다. 오늘 뭐 여러분 데이터는요 하나의 데이터는 반드시 데이타의 성격과 뭐가 있노 구조가 있거든. 성격 성격은 뭐야?
화자 1
28:44
이게 문자가 문자형인가 수치형에 수치도 정수인가 실수인가 크게 구조는 뭐예요? 문자인데 몇 자고 이 말이죠. 그러니까 데이터 에이라는 데이터가 예를 들면은 뭐 그런 거죠. 어 뭐 엑스다 어 그럼 여기서는 성격은 이 에이는 문자고 뭐 엑스는 크기죠 즉 에이 국 하면은 문자 데이터 9자리 이런 거예요. 모든 데이터는 성격과 구조를 가지고 있거든. 근데 이런 성격하고 구조하고 똑같은 거는 무슨 처리를 하라 배열이라는 자료구조로 처리하는 게 데이터에 효율성이 뛰어나다 이런 거예요. 알겠나 성격과 구조하고 똑같은 거예요. 그래서 이런 배열에는 인제 1차원 배열 2차원 배열 3차원 배열 N차원까지 확장할 수가 있는데, 시험에는 2차원 배열이 많이 나옵니다. 잠깐 보자 이 말입니다. 자 1차원 배열은 여러분 1차원 배열은 그지 행 혹은 열을 열을 행 혹은 열을 하나를 제로 했는 거예요. 요 제로가 빠졌네 예 그러면은 예를 들면 이게 인제 포추라는 의미에서 디임 하는 게 배열 선언이에요.
화자 1
29:44
디엠 A3 카면은 에이라는 배열 자료 구조 이름이죠. 배열묘 요 A는 배열 이름이에요. 배열 리스트의 이름이야 배열 리스트의 이름입니다. 이름이고 3은 뭡니까? 배열의 배열 리스트의 크기 크기예요. 크기 엔이죠. 엔 에 그러니까 뭐 내가 예를 들면 자 에이라는 배열 리스트 메모리에 3개의 데이터가 들어가서 3개가 하나 집단화될 수 있도록 표현됐다는 거거든. 그래서 1차원 배열은 그럼 요게 인제 A3로 선언되어 있으면은 요건 첫 번째 에이라는 배열 자료 구조의 첫 번째 데이터가 들어갈 수 있는 방 요건 두 번째 세 번째 요런 거예요. 그죠 뭐 연료 표현했고 요거는 뭐다 뭐 연료 표현이었고 요거는 행으로 표현하던 연료 표현하든 똑같은 개념이죠. 예 베타 스칼라 뭐 그런 이야기 할 필요는 없고 그래서 요 논리적 표현을 메모리 표현하더라도 똑같죠 메모리에 주 기억 장치에 예를 들면은 어 이렇게 배열 선언됐다. 메모리 100번지 101번지 102번지가 배열 선언 됐습니다.
화자 1
30:41
그러면 요게 배열 리스트 선언되어 있으면은 여기는 에이 첫 번째 방 요건 에이 두 번째 방 에이 세 번째 방 요거 여기에 들어가는 데이터는 데이터의 뭐 성주와 구조하고 똑같은 것들은 이렇게 배열 처리할 수 있다는 겁니다. 알겠나 요거는 1차원 배열이고 뭐 1차원 배열은 거의 출제가 안 된다. 보면 되고 출제가 될 수 있는 건 뭐다 2차원 배열입니다. 그죠 자 1차원 배열은 행 혹은 열 중에 하나를 제로로 만들어 놓으면 되는 거죠. 행값 어 자 2차원 배열이 표준배열이야 표준배열 표준배열 즉 매트릭스 행렬에서 나왔는 거 행렬은 뭐다 모든 데이터를 행과 열로써 표현하는 거지 예 그러면은 행과 열려서 표현하는 겁니다. 그러면 팀 에이라는 배열 리스트 즉 이 배열 집단의 이름이죠. 2행삼매리제 2행 3열 2개의 행에 3개 연료 구성된 배열이다. 이 말이야. 그럼 요거는 뭐야? 1행 1열방 요건 1행 1 2열 1행 3열 요건 2행 일렬방 요렇게 들어가겠죠.
화자 1
31:38
요건 인제 논리적 표현을 이렇게 하는 거예요. 근데 요놈을 물리적인 메모리 표현할 때는 뭐예요? 2가지 있어요. 자 이런 배열 선언된 배열을 컴퓨터 프로그램에서 선언된다는 거는 논리적 개념이거든. 이놈을 이제 메모리 표현하는 방법 실제 메모리에 표현하는 방법은 물리적 방법은 뭐다 2가지가 있다면 첫 번째 핵무선 노우메이즈매스 핵무선 방식과 열우선 컬럼메이즈메스드가 있습니다. 핵무설과 여루선이 있거든. 핵무설은 뭐야? 이 데이터들을 이렇게 표현하고 요렇게 요렇게 이게 핵무설이에요. 핵무설 이게 로메이즈 칼럼으로 로 메이즈 칼럼이고 아 노메이즈 방식이고 이렇게 데이터를 표현해 버리는 건 뭐다 이거는 열유선이에요. 컬럼 메이저 컬럼 컬럼 방법 여루선 방법입니다. 핵무선을 표현하고 어떻게 메모리 어떻게 저장되노 핵무선 방법은 뭐야?
화자 1
32:27
일행 1열 데이터가 먼저다 요렇게 들어가요 일행 2열 2행 요렇게 들어가죠 여류선으로 하다 보니까 어떻게 들어간다 일행일렬 들어가고 2행 일렬 들어가고 요렇게 들어가죠 요렇게 요렇게 들어가잖아요. 일행일렬 요렇게 요렇게 에 요건 여류선입니다. 똑같애요. 요거는 어드레스 메모리 주소가 있고 메모리 구십 번지 구십 일 번지 똑같은 거예요. 구십 이 구십삼 구십 사 구십오 번지까지 배열 선언되어 있다. 배열 리스트로 집단화돼 있다. 그죠 그리고 순서 리스트는 반드시 뭐가 부여된다. 데이터의 처리 순서를 매긴 인대성 첫 번째 처리돼라 두 번째 세 번째 네 번째 다섯 번째 여섯 번째 그렇죠. 현재 이 배열 그랬을 때 사회적 에너는 얼마다 6이죠. 6개의 데이터를 메모리에 배열 처리해 놨는데 메모리에는 핵무선으로 표현할 수도 있고 뭘 할 수 있다. 여류선으로 핵무선으로 표현하면 요렇게 데이터가 들어가고 여류선으로 표현하면은 이렇게 들어간다 이 말이지 쉽죠 그래서 여러분들 시험에 아주 쉬운 거 이건 뭐 핵무수 여루소인데 자 문제가 나오는 건 뭐냐 이 말입니다.
화자 1
33:26
문제는 음 문제를 살짝 한번 볼까 예 볼까요? 자 시험 이게 인제 문제는 이게 좀 나와요. 2차원 배열에서 특정 노드 특정 데이터의 주소값 구하는 문제 뭐 그렇죠. 예를 들면 에이 엔바이엔으로 선언된 배열에서 에이 일행일렬의 주소자 일행일렬이 뭡니까? 그 배열 리스트의 첫 번째 데이터가 들어가 있는 주소죠 그죠 이 기본주소죠 이걸 알파로 가정했을 때 특정 데이터 아이행 제열의 데이터의 주소 값 구하는 거 그죠 이 공식은 이거예요. 핵무선일 때는 아이형 제1 값의 주소는 기본 주소 알파 플러스 I 마이너스 1 곱하기 엔 더하기 제이 마이너스 1이고요. 여루선일 때는 알파 플러스 제이 마이너스 엔 요거예요.
화자 1
34:14
에 자 이거 한번 직접 문제를 보는 게 쉬워요 자 예를 들면 2행 3열요 선언된 배열에서 이행삼열이면 어떻게 응 이행삼열 행리 2개고 열이 3개지 그죠 아까 앞에 똑같은 거죠. 그럼 요게 에이 일행 일열방 일행 이열방 일행 아 이행삼멸이에요. 요거죠. 이행 삼멸이죠. 일행 삼열 이행 일열방 이행 이열방 이행 삼멸 요래 돼 있잖아. 어 요래 선언된 배열했어요. 에 1행1열의 여 주소가 90번지 메모리 90번지래요. 90번지 그럴 때 2행112열방의 데이터는 메모리 몇 번지에 들어가노 이 말이죠. 그래서 여러분 쉽죠 행운선으로 집어넣으면 어떡해요. 에 앞부분 다 했잖아.
화자 1
34:54
행운소를 치면 여기에 90번지 91번이 아까 있는데, 예 92 93 몇 개 대사 몇 개고 6개죠 2~23은 6 1 2 3 4 5 에 6개 94 95번지 그죠 어드레스가 부여되고 이 메모리에 그리고 오늘날 순서로 있어서 반드시 데이터의 처리 순서를 매긴 책임값 첫 번째 데이터가 두 번째 세 번째 네 번째 6개가 하나의 집단화 요렇게 배열선으로 돼 있어 어 그럼 행운수는 어떻게 들어와요. 일행 일열 1행 2열 1행 3열 2행 1열 이행 이열 이행 삼열 자 우리가 데이터 개수가 없을 때는 딱 요 얼마야 이행 이열방은 몇 번지에 있나 몇 번지 94번지 있잖아요. 그죠 에 근데 이걸 공식으로 어떻게 로우메이즈 로우메이즈 방법은 자 90 기본 주소가 뭐예요? 90번지죠 90 더하기 뭐야? 아이 마이너스 1이니까. 아이가 얼마요 2죠 2 마이너스 1 곱하기 엔 엔이 얼마야 3이죠.
화자 1
35:52
더하기 2 마이너스 1 즉 제2 마이너스 1 하니까 94번지 답은 어 이해결방의 데이터는 메모리 94번지에 존재한다는 겁니다. 이걸 여러분들 클럽 메이저로 해버리면 클럽 메이저는 어떻게 들어간다 요거 쓸까 1행 1열 들어가고 2행 1열 들어가고 1행 2열 더가고 2행 2열 들어가고 1행 3열 더하고 2행을 요렇게 들어가는 거죠. 요렇게 요게 클럽 메이저지 맞나 맞나 그럼 글레미어즈는 뭐야? 공식이 그죠 요 공식에 대입하면 요렇게 구해보니까 아 맞네요. 93번지의 이엘방의 데이터가 들어갑니다. 알겠나 그래서 뭐 공식이라 할 건 없고 요 룰에 의해서 여러분들 특정 데이터 특정 임의의 데이터에 수소값 구하는 문제가 가끔씩 출제가 됩니다. 그죠 여러분 배열 알겠나 그래서 이렇게 순서 있게 쫙 근데 이 데이터들은 전부 다 모여 데이터의 성격과 구조가 똑같은 것들은 배열 리스트로 메모리 표현하는 게 데이터의 저장법 또는 처리법에서 효과가 저기다 이 말이죠.
화자 1
36:48
여러분 데이터를 처리하다가 데이터의 성격과 구조가 똑같으면은 이렇게 배열로 메모리에 뿌려줘라 하나를 집단으로 만들어라 이 말입니다. 그래서 이게 배열 리스트가 선언돼 있죠. 그죠 됐나 요렇게 보시면 됩니다. 예 요 문제 여러분 정리하고 자 2차원 배열을 했습니다. 3차원 배열은 장난 아니죠. 그대로 확장하면 됩니다. 3차원 배열은 문제 거의 안 나온다 3차원 배열은 뭐야? 2차원 행렬로 표현했고 3차원 배열은 면행렬입니다. 그죠 이제 3차원 배열은 이게 뭐야? 어 삼행사열짜리 삼행 사열짜리 이 행렬이 몇 개 있노 어 2개 있는 거죠. 2개 이 2개 있는 거죠. 삼행 사 열 자리 이게 두 개 있는 거예요. 그러니까 뭐 하나 입체를 이루는 거죠. 이게 두 개 있다는 거다 그림 수는 못 그렸네 예 그래서 삼차원 배열의 주소가 구하는 것도 여러분이 공식 살짝 보면 되겠죠. 예 삼차원 배우는 문제 잘 안 나오지만 해가지고 보면 되겠지 그지 한번 보고 됐구요.
화자 1
37:42
이 스파스 매트릭스는 희소 행렬 희소 행렬 요거는 뒤에 나오는데 이 희소 행렬은 여러분들 뒤에 연결 리스트에서 즉 희소 행렬은 뭐냐 하면은 행과 열을 구성하는 이 행렬 중에 실제 데이터가 데이터가 0인 게 70% 이상인 데이터예요. 그렇죠. 그런데 이렇게 희소 행렬을 연결 리스트로 만들면 행렬량 나왔기 때문에 하는 거야. 뒤에 별 연결 리스트로 표현하면은 메모리 전략 효과가 일어난다는 이야긴데 연결 리스트에서 한번 살짝 보죠. 중요한 건 아니고요. 참고로 하는 거예요. 참고로 예 행렬이 나왔기 때문에 스파스 매트릭스 잠깐 봤습니다. 자 그다음 넘어갑시다 여러분 지금 우리는 뭐하고 있노 오케이 예 자 바로 자료 구조 데이터를 메모리에 저장하고 표현하는 방법을 배우잖아.
화자 1
38:33
이 자료 구조는 크게 선형 구조와 비선형 구조가 있지 선형 구조는 데이터들이 동등할 때 데이터를 메모리 표현하는 방법이고 비선형은 데이터들 간의 상하관계가 있을 때 이 선형에는 그게 뭐다 순서있게 표현하는 순서 구조가 있고 포인트를 가지고 연결 연결해 가지고 연결한 연결 리스트가 있었지 비선형 구조는 추리하고 그래프가 있죠. 어 근데 이 순서 리스트에는 가장 배열 성규와 구조하고 동일한 거가 있구요. 그다음에 두 번째 뭐였냐 스택이 있습니다. 스텝 스택은 있었다. 아주 중요합니다. 스텝 아 지금 몇 분 정도 지났습니까? 예 벌써 40분요 어우 시간이 조금 요거는 시간 걸릴 것 같애 스택은 여러분 원래 사전에 찾아보면요 이 스택은 뭐 쌓아 올린 더미예요.
화자 1
39:20
더미 에 이렇게 계층이 이건 스택이라는 실은 자 이 스테이크 리스트는 뭐냐 우리 스택 여러분들 내가 늘 알죠 어 내가 전번 시간에 컴퓨터 위에서 이야기했지 그 택시 기사 아저씨들 동전을 넣는 통 동전 탁탁 그죠 여기 스테이크 계층 있게 집어넣는 거예요. 이 스택은 한마디로 리퍼형의 자료 구조입니다. 리퍼가 뭐고 레스트 인 퍼스트 아웃 후입 선출 방식 데이터를 처리할 때 스택은 반드시 후입 선출법으로 처리해 제일 나중에 들어간 데이터가 제일 먼저 나오잖아. 어 제일 나중에 들어간 동전이 제일 먼저 뽑아내잖아. 그죠 예 되겠나 데이터를요 후입선출 방식으로 제일 나중에 컴퓨터에 저장됐던 놈을 제일 먼저 뽑으려 할 때는 반드시 스택이라는 자료 구조로 처리하라 이 말입니다. 그래서 이 스택은 데이터의 삽입과 삭제가 리스트에 에 한쪽 끝에서만 이루어지는 자료 구조입니다. 자 이게 스택이다. 이 말이에요. 이게 스택 이게 스택 입니다.
화자 1
40:20
스택 스택 리스트 또는 스택 메모리 해도 되겠죠. 스택 메모리 자 메모리랑 리스트 같은 말인데 리스트는 데이터가 들어있는 메모리를 리스트라 하잖아. 예 스탭 우리가 컴퓨터 보여줘서 내가 언급이 됐다. 스탱요 자 이 스택이 만약에 이게 하나의 스택이다. 합시다. 이 스택의 사이즈가 몇 개고 이제 이거는 순서리스트기 때문에 인덱스가 부여되겠죠. 그리고 스택은요, 주소가 부여되지 않습니다. 주소가 부여될 이유가 없어 데이터 처리가 완전히 정해져 있기 때문에 사이즈 이 스택의 사회적 엔이 얼마 지금 현재 5죠 즉 5개의 데이터가 들어갈 수 있는 스택 메모리가 만들어졌는 거야. 이 스택은 반드시 한쪽 끝을 막습니다. 이 막은 부분을 바텀이랍니다. 바텀 이 바텀은 고정적이에요. 바텀의 인덱스 값은 여러분 인덱스 값은 인덱스 값은 제로입니다. 제로 현재 요게 인덱스 값 제로예요. 현재 제로입니다. 바텀은 제로로 고정시킵니다.
화자 1
41:17
고정시켜 놓고 한쪽 끝에서 DATA를 집어넣었다 뺐다 잊으라는 거야. 이렇게 DATA를 저장하고 처리하는 자료 구조가 STECK이야 자 여러분 이게 무슨 말이냐 이 말이죠. 스택에서 데이터를요 집어넣는 걸 삽입하는 걸 스택의 용어로 뭐다 푸쉬 또는 푸쉬다고 합니다. 스택 메모리 스택 자료 구조에 데이터를 딱 집어넣는 거예요. 푸시를 한다니까 푸시 밀어넣는 거예요. 또는 푸시 다운이라고 하죠. 만약 이 스택 있을 때 데이터가 ABCD 5개니까 이래 들어가죠 요렇게 집어여 가지고 데이터를요 EDCBA로 출력할라카면 이 스택을 이용하면 되겠지 집어넣습니다. 집에 쭉 넣죠 또 집어넣는 걸 빼는 걸 뭐라카노 삭제하는 걸 팝이다. 팝 또는 팝업이랍니다. 빼낸다 팝 또는 팝업이라고 합니다. 그렇죠. 그럼 스택이 이제 데이터가 들어갑니다. 어 이 스택이 인제 처음에 처음에는 데이터가 텅 비어 있지 비어있죠. 어 그렇잖아. 이거 스택의 초기 조건은 뭡니까?
화자 1
42:16
스택 메모리에 초기 상태는 NFT예요. 비어 있어요. 즉 스택 엔프티 조건은 우리는 여기서 지금 보면 어 비어있구나 하지만 컴퓨터는 이걸 어떻게 알아요. 식으로 알잖아. 즉 스택 엔프티 조건이요. 탑은 탑 있고로 바텀이 있고 제로예요. 이게 뭐냐 현재는 비어 있고요. 현재 상황은요, 탑과 바텀의 인덱스 값이 제로라니까 밑바닥이라니까 데이터가 아무것도 없네요. 여기 데이터가 들어갑니다. 에이가 들어가죠 에이 딱 들어가면은 탑이 제로에서 탑값 1로 딱 올라옵니다. 현재 탑은 1입니다. 그 탑은 올라갔다 내려갔다 합니다. 스텝은 바텀은 고작이고 그리고 비가 딱 들어오죠 탑값이 2로 탁 증가됩니다. 씨 한 데이터 딱 집어넣으면은 원래는 탑값이 증가되고 난 뒤에 데이타가 이렇게 딱 들어가거든. 어 그리고 디를 집어넣기 위해는 탁 탑이 4가 되면서 데이타가 들어가요 또 E를 집어넣기 위해선 탑이 5가 되면서 E가 탁 들어간다 자 여기 무슨 말이야. 스택에서 여러분 데이터의 삽입은 뭐야? 탑값이 증가하겠죠.
화자 1
43:12
굉장히 중요하다 탑값이 증가되면서 컴퓨터는 스택의 데이터를 집어넣었어요. 즉 탑값의 증가 여부는 뭐다 탑은 탑 플러스 일 이 명령어에 의해서 이 식에 의해서 이 스택이란 자료 구조에 데이터가 들어갑니다. 그러면 현재 탑이 3이다. 하는 게 뭐야? 컴퓨터는 아 현재 데이터가 여기까지 올라와 있구나 이겁니다. 무슨 말인지 알겠나 우리는 아 현재 데이터가 3개 들어가 있네 눈으로 보면 되지만 컴퓨터는 뭐다 탑 이콜로 삼이라고 하는 의미가 뭐야? 어 현재 컴퓨터는 스택 메모리에서 데이터 3개가 들어가 있다. 이런 거야. 알겠어요. 이런 식으로 디에 들어가고 E 들어가죠 어 그래서 빼잖아. E 빼잖아. 빼면 탑 값이 뭡니까? 오에서 감소됩니다. 또 빼잖아. 디 빼면 탑 값이 3으로 감소돼요. 이렇게 감소되죠. 이렇게 탑값의 감소 의미는 즉 탑은 탑 마이너스 1은 뭐다 데이터를 삭제하는 행위예요. 되겠나 자 여러분 뭔 말인지 알겠어요. 자 다시 이야기합니다.
화자 1
44:11
스택의 초기 상태는요 탑값이 제로죠 즉 탑 이꼬르 바텀 이꼬르 제로입니다. 바텀은 항상 제로지 뭐 자 요렇게 표현해도 되고 초기 상태는 처음에 스택의 데이타가 없어서 탑 제로라는 거 뭐야? 데이터가 하나도 없다는 거야. 그래 데이터가 인제 하나 들어가면 탑이 뭐가 1 되면 탑 1카는 건 뭐고 데이터 1개 들어가 있는 거예요. 지금 어 그리고 탑 이 카면 뭐야? 데이터가 2개 들어갔는 거야. 탑 현재 탑 인덱스 값이 3이면 3개 들어가 있는 거야. 탑이 4면은 4개 들어가 있고요. 탑이 오면은 뭐 5개 들어가 있다는 거죠. 어 이렇게 데이타 스타 값이 증가되는 거는 뭐다 데이터의 삽입을 의미하는 거야. 알겠나 그러다가 이걸 보세요. 현재 이 스택의 사이즈 엔이 얼마입니까? 사회자 엔이 얼마예요. 사이즈 앤이 오죠 이 오에요. 5개밖에 못 넣거든. 내가 그러면 이래 가다가 탑하고 사회적인 같아 이게 뭐야? 어 탑 이꼴은 엔 요건 스텝 엔프디 조건이고 이래 가다가 탑 값도 오고 엔값도 오예요. 탑 이꼴 엔은 이게 뭐야?
화자 1
45:09
스텝 꽉 찼다 스텝 불 조건입니다. 중요하다 스텝 불 조건은 근데 스태풍으로 만따가야 만따 꽉 들어와 있잖아. 이거 우리는 눈으로 보면 알지 컴퓨터는 뭐야? 탑값과 엔값이 비교해 같으면 컴퓨터는 모르는 시간 아 스택의 데이타가 꽉 찼구나 스택 부위 쪽 갑니다. 알겠나 탑 이콜 엔이에요. 되겠습니까? 탑 있고 엔인데도 여기 데이터 하나 더 집어넣어버려 그럼 탑값이 엔보다 그려버리면 뭡니까? 스텝 오버플로우제 집어넣어 버리면 넘쳐 버리죠 이거 오버 스텝 스텝 오브플루 조건은 뭐다 탑 있고루 엔이면은 스텝 오버플로우입니다. 알겠나 그렇죠. 그러다가 이제 데이터를 뺐니다. 데이터 빼죠 하나 빼면 타 값이 얼마 안 되는 5에서 4로 또 4에서 3으로 어 3에서 2로 이렇게 어 타 값이 감소는 뭐야? 타 값의 감소는 뭐 스택에서 데이터를 빼는 거예요. 빼다가 빼다가 한번 봐봐요. 0까지 왔으면은 뭐야?
화자 1
46:09
비어있는데, 현재 탑이 0보다 적으면 뭐예요? 이 선택 언더풀로예요. 어 선택 언더풀로 이건 일어나지 않는데 이론적으로는 일어납니다. 실제적으로 고정돼 있기 때문에 뭔 말인지 알겠나 0이 이게 최대치인데 마이너스 값이 돼버리면 뭐다 이걸 선택 언더풀로 조건 뭐 탑이 0보다 적어버리면 마이너스 값을 갖게 되면은 언더풀로고 탑이 엔보다 커버리면 오프플로우입니다. 이해되나 이렇게 타악값으로 가지고 스택의 데이터가 들어갔다 나왔다. 하는 거예요. 그래서 스택 컴퓨터는 스택에서 탑값이 증가되면 데이타가 들어가는 거고요. 타압값이 감소된다는 것은 데이터를 빼는 거예요. 되겠어요. 이렇게 한쪽 끝에서 데이터가 집어넣었다 뺐다가 하는 특수한 자료 구조가 순서 리스트가 뭐다 스택 리스트 다른 말로 스택 메모리다 실제 그래서 스택에 들어가 있는 데이터는 싫든 좋든 데이터 어떻게 처리된다. 리퍼 방법으로 처리된다. 레스트 인 퍼스트 아웃 방법으로 싫든 좋든 제일 나중에 들어간다면 제일 먼저 처리 대상이 되는 거예요. 알겠나요?
화자 1
47:09
그래서 컴퓨터에서 리퍼 방법으로 처리할 때는 반드시 스택 알고리즘으로 스택 리스트로 메모리의 임시 공간을 만들어서 처리하는 게 보통 알고리즘입니다. 됐죠 이게 스택 정의다 중요하다 스택 초기 조건 탑 있고로 제로고요. 스텝 풀 조건 뭐 탑 있고르 엔이고요. STAP AN보다 커져 버리는 거 STAP 언더블루 조건 뭐 탑이 0보다 적어지는 거 됐어요. 탑의 인덱스 값입니다. 좋습니다. 다음 장 넘어가 봅시다 자 방금 이야기 다 했는 걸 식으로 또 1번씩 문제 나오니까 한번 보자 이 말이에요. 스택의 삽입 방법 삽입 알고리즘 삽입 알고리즘 봅시다 이게 뭐 파스칼로 표현이 중요한 건 아니고 삽입 뭐야? 프로시저 진행한다는 거죠. 입법 탑이엠보다 크면은 뭐야? 오버플로우죠 근데 만약 이 조건이 아니면 그렇지 않으면 뭐다 탑 가구 평가 후 스택에 데이터를 집어야 아이템 데이터를 집어넣는다는 거고, 그죠 어 그리고 탑이 애니메일은 뭡니까? 스택풀이 되는 거죠. 그렇죠.
화자 1
48:07
그래서 요거 요거 딱 나오면 삽입 알고리즘이구나 요렇게 프로그램을 짜면은 스택에서 데이터를 처리한다는 거예요. 중요한 건 이겁니다. 탑값이 증가 후 데이터 삽입니다. 실은 탑값이 세 번째 데이터 여기 데이터를 자 탑이 제로다 데이타 하나도 없는 거예요. 1개 넣고 싶으면 탑값을 증가하다 시켜놓고 전과 후 데이터를 집어넣는다는 거지 증가 후 동시에 탁탁 집어넣는 겁니다. 요 말이 핵심이고 삭제 알고리즘은 뭡니까? 삭제는 프로시저 탑이 0보다 적으면 언더플로우죠 근데 이 조건만 아니면은 엘스 스택 탑 즉 탑 값의 가함소죠 자 이거는 뭐냐 하나 빠졌네 요거죠. 현재 스택 탑에 들어있는 데이터를 빼낸다는 거예요. 그리고 그리고 탑 값이 감소되는 거죠. 그리고 탑이 저로 오면은 스택 엠프티고 탑이 영보다 적어버리면 스택 언더풀로 나는 거지 그렇죠. 똑같은 개념이냐 요거는 감소 때는 뭐예요? 데이터를 삭제 후 탑값이 감소됩니다. 자 데이터를 삭제 후 타 값이 감출되는 요거지 요게 핵심입니다.
화자 1
49:04
그래서 삽입 알고리즘 삭제 알고리즘 그죠 요런 명령으로 우리 스택의 데이터를 집어야 다 뺐다 요걸 인제 파스칼로 구현했는데 요걸 여러분 컴퓨터 시 언어나 비주얼 베이직이나 구현하면은 스택 메모리에 데이타가 아주 요 명령에 의해서 들어갔다 그죠 탑값 증가 후 데이터가 들어가고 예 데이타 삭제 후 타값 감소되고 그죠 요 말이 핵심이다. 이 말입니다. 되겠습니까? 자 그러면요 여러분 얼마만큼 스택을 잘 알고 있는지 즉석 보너스 문제 함 하자 보너스 시간 없어도 보너스 문제 해야 될 거 아니야. 자 요 문제 1문제면은 우리 병태 순자 스택에 대해서 잘 아는데요. 그죠 자 보자 너무나 쉽죠 만약 어떤 스택의 사이즈 N27이다. 아니 아니요. 앞부분이에요. 예 N27이고 그 알파벳 순서대로 입력시 예를 들면 그 스택의 사이즈가 스택 이래 했는데 N27이라 카는 게 뭐야? 이 스테인 리스트의 데이터가 몇 개 들어간다 1 2 1 2 3 4 5 6 7개 들어갈 수 있는 스택이 선언돼 있다.
화자 1
50:04
이 말 아니에요. 스텝 그래서 스택에는 뭐다 인덱스가 부여되겠죠. 그죠 그래서 요게 바텀이지 항상 막아놨는 게 바텀이고 한쪽 끝에서 데이터가 들어갔다가 나왔다. 하잖아 요거 인덱스 값은 제로죠 제로고 요것은 1 에 항상 제로부터 제로에서부터 1이 1 2 3 4 5 6 7 요래 됐다. 이 말이야. 요런 스택에다가 N이 7이란 말이야. 여기 데이터를 ABCD E 그리고 디 딜리트해라 카거든. 그럼 비가 또 빠져나옵니다. 비가 싹 히가 요래 돼 현재는 그리고 또 디 카면 에이 빠져나와 버려 현재 요래 되죠. 그리고 아이 카면 또 뭐 들어가노 아 씨가 딱 들어갔네 이제는 그다음에 또 아이 카면 뭐야?
화자 1
51:02
디가 딱 들어가네 또 아이 카면 뭐다 어 E가 딱 들어가네 그리고 뭡니까? 디 하면 빠지네요. 빠지면 최종 답은 뭐다 아 요 명령 후 스택에는 씨디가 딱 남네요. 이해되나 어 요거예요. 요거 요 문제 되겠나 예 스택은 요렇게 되는 겁니다. 좋습니다. 예 좋아요. 자 만약 여러분들 출제자가 나는 스택을 계속 이렇게 그리지 이렇게 어 이거 막힌 게 바텀이에요. 제로예요. 인덱스 값이 근데 출제자가 이래 그려버리면 이게 뭐 이게 이게 제로고 이쪽이 1 이래 되제 출제자가 스택을 이렇게 그린 겁니다. 이게 제로고 인증서 값 이렇게 되겠죠. 자 출제자가 스펙을 잃어버리면 이게 제로고 막힌 쪽이 제로지 이게 1 2 이렇게 된 겁니다. 알겠나 근데 보통 시험에 이래 나오지 이렇게 이렇게 내는 사람 없다. 그건 또래양이야 근데 요렇게 문제될 수도 있습니다. 뭔 말인지 알아 모르면 통과 좋습니다. 자 스펙 좋아요. 아주 지금 정리 잘하고 있습니다.
화자 1
52:00
스텝 자 뭐 그 다음에 다 됐다. 자 이거 스택을 아까 보니까 뭐예요? 아까 스택에서 탑 탑이 스택의 탑값이 탑의 인디어스 값이 사이즈 엔보다 커버리면 뭡니까? 오버플로우죠 즉 스택의 탑값이 사이즈 엔과 같으면 이건 뭐야? 스택 풀이죠. 스택풀 근데 여기서 탑은 탑 플러스 1에 의해서 탑 값이 커져 버리면 무슨 현상 오버플로우단 말이야. 이런 로봇 분열을 방지하는 방법 이거 그냥 눈으로 봐 예 내가 다 설명 요즘은 여기까지 하면 옛날엔 여기 다 나왔는데 자 이중 스택으로 구현해 버리면 됩니다. 이중 스택을 하나의 메모리 2개를 만들어 버리면 되고요. 또 멀티스텝 여러 개를 만들 수가 있고 스택을 연결 리스트로 해버리면 됩니다. 그죠 그래서 여러분들 이거 일일이 내가 다 설명을 옛날에는 여기까지 요즘은 여기 잘 안 나오지 제목만 하나 놔라 스텝 오블루 방지법 이중스텝 멀티스텝 연결 스텝 그죠 이중 멀티 연결 요 3가지 방법으로 스택의 오프리오를 다소 방지할 수가 있습니다. 됐나요?
화자 1
52:56
그리고 여기도 한 가지 이런 스택이 오늘날 컴퓨터에서 어떻게 이용되노 말이죠. 컴퓨터 내부에서 이용되는 사례다 주로 서버 프레임의 호출 시 복귀주소 복귀주소 저장을 스택합니다. 나중에 다 함 할게요 리턴너들에서 복귀 주소 저장을 서버 프레임 호출 시험에 이렇게 나오죠. 근데 구체적으로 복귀 주소 저장을 선택하고요. 또 순환 프로그램 즉 재기호출시 다시 불러오는 주소도 스택이 저장되고 산수식 표기법에 변환해도 이용됩니다. 요거는 뒤에 추리해서 합니다. 수식변환법 이용되는 게 3가지가 있거든요. 여러분들 바로 스택 방금 우리가 배우는 스택을 이용해서 변환시킬 수도 있고요. 그 다음에 인제 뒤에서 배울 추리의 운행 살짝 제대로 남아 추리에 운행법 운행을 이용할 수도 있고요. 그다음에 관료 관료를 묶어서 수식을 변환할 수도 있습니다. 이 중에 스택을 가지고도 수식변환해 이 수식변환 뒤에 이야기합니다. 이용하셔서 스택이 이용이 돼요.
화자 1
53:54
그리고 그래프의 뒤에서 배우죠 DFSDAPS 퍼스트 설치 깊이 우선 탐색해도 스택을 이용하고요. 우리 인터랩도 스택 이용됐죠 어디 예 현재 수행 중인 명령어의 번지 현재 PCR에 대한 명령의 번지를 메모리 0번 지나 스택에 저장한다고 했잖아요. 그죠 인터랩트에도 스택이 이용되고 또 제로 주소 명령어 스택이죠. 스택 스택 메모리 들어가는 데이터를 처리할 때는 명령어는 뭐다 오케이 피연산자가 필요 없는 재료 주소 재료 주소 스텝 1 주소 어큐머레이터 문 제가 하나 다 가르기 좋네요. 그리고 컴파일러 할 때도 컴파일러 어느 번역 시에도 스택이 이용됩니다. 그래서 오늘날 컴퓨터 시스템의 스택이 아주 중요하게 여러 군데서 이용이 된다는 거 눈으로 한번 살짝 봐 놓으면 좋습니다. 됐나요? 자 스텝 좋습니다. 좋아요. 자 여러분 실은 이거 이 자료 구조요 과거에 이거 20문제 나왔다니까 그걸 인제 현재는 압축을 합니다.
화자 1
54:51
그래서 옛날 98년 정도에는 이 강의할 때 굉장히 깊이 있게 했다. 그죠 요즘은 범위는 넓어졌고 대신 문제의 난이도는 굉장히 좀 적어졌어 알겠나 그래서 개인적으로 좀 불만이다. 그래도 지금 내가 완벽 속성이지만요 대학 정상과 4년 배우는 것보다 훨씬 많이 배웁니다. 여러분들 얇잡아 보지 마라 이 50강 안에 모든 진리가 다 들어가 있고 대신 말이 조금 빨라지는 거 그리고 뭐 이렇게 깊이는 거의 비슷하게 합니다. 내가 어떤 사람은 완벽 소성이라고 과거 강의 좀 바깥독 하고 하지만 어 뭐 똑같애요. 과거 학년에 좀 여유를 가지고 어 인생살이 이야기도 좀 해가면서 에 아 이렇게 하는 거고, 이 완벽 속성은 조금 스피드를 내는 것밖에 없다.
화자 1
55:37
그래서 여러분 전사고 학생들 잘 알지만 내강 요 지금 우리가 이거 참 여러분 신기하지 전사고 학생들 지금 디비 진다 어찌 저걸 저렇게 강의하노카고 계급품 물지마 현재 이거요 대학 4학년 전산과에 배우고 다 배웁니다. 그래서 여러분 내 강의 잘 듣고요. 공무원 가산점이나 국가시험 여러 가지 있지만요 앞으로 정부처리 강의 제대로 듣고 나면은 우리나라에서 시행하는 모든 전산시험은 끝이야 알겠나 그래서 내 강의 듣고요. 공무원 전산지 주택공사 전산지 도로공사 많이 갑니다. 어 왜 그 도로공사 주택공사는 아직 시험 치러 들어가거든. 어 거기에는요 정부처리 기사 과목 이게 다 아이가 영어만 딱 들어갑니다. 어 그럼 제재자들 강의 들으면 뭐 떨어질려고 몸부림쳐도 안 떨어지는데 에 에 그래서 내 제자 같은 IT 업계를 석권하고 있다는 사실 자 사랑하는 후배 여러분들 선배들 따라 그래 가라이 좋습니다.
화자 1
56:31
예 그리고 자 큐 한번 보자 좀 빠르게 자 스택에 비해서 큐어는 뭐냐 하면 Q 라는 자료 구조는요 피포 방식으로 데이터를 피포 뭐야? 퍼스트 인 포스트 보면 안 써도 되겠죠. 예 제일 먼저 나온 데이터를 먼저 처리하는 방식이에요. 즉 리스트의 한쪽 끝에서 삽입 한쪽 끝에서 삭제 그죠 이루어지는 자료 구조다 이 말입니다. 그래서 이게 큐죠 그죠 이게 만약에 큐리 이게 큐다 그죠 이 큐 리스트다 이게 사이즈가 얼마에요. 엔이 5개냐 사이즈 엔이 오다카는 이큐리스트의 5개의 데이터를 처리할 수 있다. 이 말이 아니야. 어 엔이 오다 그럼 데이타가 이렇게 들어오는 부분은요, 데이터가 덜하는 부분을 리어라 합니다. 니어 후방위라 하고요. 데이터가 빠지는 부분을 에프죠 프론트 전방위라 한다. 그죠 우리가 스택은 뭡니까? 탑 바텀이었죠. 탑으로 모든 걸 해석했지 탑값의 증가 데이터에 삽입 탑값의 감소 데이터의 삭제였는데 이큐어는 뭡니까?
화자 1
57:26
니어와 프론트로 해서 니어의 인덱스 값과 프론트의 인덱스 값으로 컴퓨터를 알아냅니다. 알겠나 그래서 데이타가 리얼 어 데이터가 리얼 값이 증가된다는 무슨 의미냐 즉 데이터의 삽입을 의미합니다. 리얼값이 증가하는 리얼 값이 증가하는 데이터의 삽입이야 즉 니은은 니은 플러스 1은 현재 큐리스트에 데이터를 집어넣는 거고요. 자 큐리스트의 데이터를 삭제한다는 건 뭐야? 프론트 값의 증가입니다. 감소는 없다. 즉 프론트 이거를 프론트 플러스 이런 데이터의 삭제를 의미하는 거야. 알겠나 자 이게 무슨 말인지 한번 보자 이 말입니다. 어 정말 재밌제 현재 큐리스트의 초기 상태는 뭐야? 엔포티지 역시 비어 있죠. 이 초기를 우리는 비어 있다. 카는 걸 알지만 컴퓨터 어떻게 하나 어떻게 프론트의 인덱스 값 프론트 값과 야 이런 프론트 값에 가까운 게 인덱스가 1위입니다. 리얼 쪽이 뒤쪽이고요. 프론트와 리얼이꼴의 제로가 초기 상태입니다.
화자 1
58:23
프론트 이꼴르 제로 즉 프론트 프론트 제로 니어 제로가 뭐다 비어 있다는 거예요. 프론트 제로 즉 하나도 안 들어가고 하나도 안 지워졌다는 것 아니야. 하나도 안 들어가고 하나도 안 지워졌는 거예요. 여기서 데이터가 들어갑니다. 에이 들어가죠 에이 들어가면은 지어진 게 있냐 없죠 프론트 제로가 니 얼마입니까? 일로 증가됩니다. 자 다시 B 드갑니다. B 더 가면 프론트는 뭐야? 제로죠 아직 안 재워줬잖아. 프론트는 영원히 제로는 제로에 있는 거예요. 리허션 여기서 자꾸 이렇게 증가가 되는 겁니다. 자 들어가면 이제 니어가 E가 되죠. 씨가 들어가면 뭡니까? 프론트는 역시 제로면서 니은은 3으로 증가됩니다. 디라는 데이터가 들어가면은 프론트가 제로고 니은은 사로 증가됩니다. 이가 딱 들어가면요 프론트는 역시 제로고요. 니은은 오로 딱 적어 현재 다 찾죠 자 이렇게 리어 값의 증가는 뭐야뭐야? 한다. 어 데이터에 삽입을 의미합니다. 알겠나 그러다가 인제 뺐니다. 에이를 싹 뺀다 에이를 제거합니다. 딱 제거하면 어떻게 돼요.
화자 1
59:23
현재 리어 오면서 프론트가 뭐 제로에서 1이 됩니다. 자 비를 딱 제거합니다. 니은은 오면도 프론트는 뭐다 이로 증가됩니다. 또 씨 딱 제거합니다. 프론트는 아직까지 오다 프론트는 오예요. 여기 프론트 리얼은 온데 프론트가 1에서 2로 증가되고 씨 제거하면 프론트가 3입니다. 계속 고정입니다. 3이고 자 비를 딱 제거하면 뭐야? 프론트 값이 제로에서 1 2 3 4가 돼요. 프론트값 어 그리고 또 이 딱 제거하면 프론트 값 얼마 돼요. 5가 됩니다. 그렇죠. 프론트 값의 증가는 얼마 안
화자 2
1:00:00
데이터의 삭제를 의미합니다. 맞나 니은 값의 증가는 뭐다 데이터의 삽이 어 프론트 값에 증가하는 데이터의 삭제더라 이 말이야. 되나 그래요. 자 그럼 여러분 봐요. 프론트 3 니어 옥 하는 게 무슨 의미고 이 큐리스트에 데이터가 5개 들어가고 난 뒤에 3개가 지어졌다는 겁니다. 알겠나 그렇죠. 시험 이런 게 나오죠. 프론트 이 리어 4라 카는 게 뭐예요? 이 큐리스트에 에 사이즈 에임이 오다카면은 큐리스트에 자 1 2 3 4 5개 더 가면요 데이터가 ABCD 4개 들어가고 난 뒤에 2개가 지어졌다는 거예요. 아 그러나 프론트 이어서 하는 뭐다 4개 들어가고 난 뒤에 2개 지어졌다는 겁니다. 이게 답이에요. 대체 너무나 쉽다 이 말이에요. 자 이러다가 여러분 뭐야? 큐플 조건은 뭐예요?
화자 2
1:00:55
큐플 큐플은 뭐다 현재 니어 니어가 아까 봤죠 니어 오다 하는 게 니어 사회 제임이 오예요. 현재 니어 오답하는 마땅이죠. 니어 니어 즉 니은 값과 니어 니어와 엔이 같으면 뭐야? 큐플입니다. 큐플 오늘 도보 큐플 하는 게 뭐야? 큐 3장에 이 2장 이거 아이고 풀하우스가 아니고 큐만 딱 아까도 도박강의 해줬지 시아머니에서는 재미있게 할 낀데 그죠 도박강의 풀집 아니다. 풀집 예 무슨 소리 하는 둥 순자 저거 완전히 무슨 소리 하는 둥 아이 그래 리얼 이꼴 엔이 뭐다 큐플입니다. 그죠 큐 엔프디 조건은 뭡니까? 프론트 제로 니어 제로는 하나도 안 들어가고 하나도 안 지워진다는 거고, 그죠 니으 니어하고 애니 같은 거는 큐만 땅이라는 겁니다. 데엘라 예 그래서 여러분들 큐를 살짝 봤습니다. 재미있제 한쪽 끝에서 삽입 한쪽 끝에서 삭제가 일어나는 데이터 구조다 좋습니다.
화자 2
1:01:55
어 아우 뻑뻑해 자 큐의 삽입 말고 지금 다 봤다. 인제 이거는 미역 값 증가 후 데이터의 삽입니다. 그죠 니은은 니은 플러스 1 데이타 미역 값 증가 후 이 아이템 데이터를 현재 니의 잘못됐네 미역 알 입니다. 알 에 리어 아래 집어넣는다는 거고, 어 요거고, 삭제는 뭡니까? 프론트 증가하고 데이터 삭제 즉 프론트가 증가되고 난 뒤에 데이터가 이렇게 삭제가 되는 거죠. 삭제가 되는 겁니다. 어 여기에 QQQU이 큐만 하면 됩니다. 예 이렇게 되는 중요한 건 아니고 니은 값은 가우 데이터 삽입 프론트 값 데이터 삭제하기는 한다. 그러니까 큐어 오버플로는 어떤 거예요. 여러분들 리어 값하고 현재 큐의 니어의 인덱스 값과 사이젠이 같으면 큐플이죠. 저 그 큐플이고 이 리어가 엠보다 커블이면 뭡니까? 오버플로우인데 이 오버풀로 방지하는 방법도 있다.
화자 2
1:02:50
산자 무빙큐 이동 큐 또는 환영 큐어 서큘라 환영 환상 큐죠 그죠 또는 연결 큐 이 3가지 방법으로 만들면은 이런 걸 다소 방지할 수 있다는 거예요. 역시 제목 정도만 봐 놓으시면 되고요. 과거에는 다 다 설명을 했는데 제목 정도만 봐 놓으시면 됩니다. 그렇제 좋습니다. 자 이런 큐어는 우리가 주로 어떤 데 이용되나 우리 배웠죠 운영체제에서 대기 큐겠죠. 작업들 현재 처리할 작업들을 저장하는 대기 리스트 즉 OS에서 스케줄링 작업 시 이용되고요. 스풀 작업실이나 아 버퍼 즉 아용 입출력 작업 시에 우리는 큐를 많이 이용합니다. 그죠 그래서 우리가 오에스에서 대기 큐라 했잖아요. 대기 큐 예 큐 그래서 요런데 이용이 특히 운영체제에서 큐는 많이 이용된다. 하는 거 정의했습니다. 좋습니다. 좋아요.
화자 2
1:03:43
자 몇 분 이제 예 65분 예 좀 하자 자 데큐는 뭐냐 하면 더블 NDDQ대 공부할 거 없다. 앞에서 배운 스텝과 큐의 장점을 결합했어요. 그러니까 리피퍼 방식이에요. 네스틴 폴스틴 폴스타 즉 삽입과 삭제가 니스테이 양쪽에서 모두 즉 이쪽에서 삽입 위쪽에서 삭제 여기에서 삽입 이쪽에서 삭제 그죠 요런 자료 구조 그래서 요 제목만 아니면 된다. 요거는 예 그래서 입력제한 데크를 스크롤이라 합니다. 입력제한 즉 예를 들면은 입력 한쪽을 제한해서 요건 스크롤입니다. 그죠 출력을 제안하는 데크를 셀프라 합니다. 출력제한 요거 출력의 하나 출력을 하나 제안했습니다. 요거 그러면 요건 뭐다 셀프입니다. 셀프 그죠 입력이 한쪽 끝으로 제한 한쪽 제한하면 스크롤 출력제한 데크를 셀프라 한다는 거 역시 가벼워 봐 놓으시면 됩니다. 좋습니다.
화자 2
1:04:32
그래서 방금 여기까지 봤는 건 뭐라 순 서리스트 싫든 좋던 데이터가 에이 들어가고 비 들어가고 그죠 데이터 연속적으로 들어가는 기법 그중에 배열은 뭐라 데이터의 성격과 구조 동일한 거는 배열 순서리스트로 들어가고요. 또 니퍼 방법으로 처리하는 거는 스택으로 들어가고 그죠 피포는 뭐다 큐로 들어가고 니피포로 처리하는 거는 요런 식으로 데큐 비에규로 그죠 더블 앤디드 큐로 처리한다는 것 정리되나 좋습니다. 자 방금 만든 것들은 순서 리스트고 자 지금부터 연결 리스트 공부할 것도 없다. 연결 리스트는 뭐냐 연결 리스트 자 순서리트에서 다시 이야기한다. 하나의 노드 데이터가 저장하는데 하나의 데이터가 들어가는 게 노드라 했죠. 이 노드가 곧 데이터잖아요. 여기는 데이터만 딱 데이터 분만 있는데, 연결 리스트는 뭐야? 나의 노드 구조가 어떻게 되어 있다.
화자 2
1:05:19
데이터부와 요 데이터 다음에 처리될 데이터에 링크 즉 주소부가 있다카죠 주소부 링크 링크부에 뭐가 들어간다 다음 데이터에 요 데이터 다음에 다음 데이터에 뭐 주소 데이터 주소 값이 더하지 요 다음 데이터의 주소 값을 우리는 뭐라 한다. 주소 데이터를 우리는 포인트 포인트 데이터로 한다. 그죠 그래서 포인트 자료를 가지고 있는 거 다음 데이터의 주소값 포인트 그죠 좋습니다. 자 요런 연결 리스트는 이제 그림만 살짝살짝 보면 된다. 좋아요. 좋습니다. 이제 다음 장 볼까요? 자 단순 연결 리스트가 일반적이지 이건 체인이냐 체인 체인 구조 체인카에 또 와 저래 짝다리 집노 여러분 고등학교 다닐 때 가방 조사하면 체인 많이 나오제 체인 아나 그거 모른다고 어 면도칼 체인 모르나 통과 예 재밌는 이야기 있는데, 유성 칠공주 뭐 이런 거 그때 그 시절 통과 시간이 없다.
화자 2
1:06:16
그냥 자 연결 뉴스는 이제 여기 메모리 되게 메모리 메모리 주 기억 장치인데 여기 어디랬어. 메모리 항상 주소 보여야 되는데 자 90번지에서 94번지가 연결 리스트로 구현돼 있는데, 연결 리스트 중에서도 단순한 연결 리스트 즉 체인으로 구성돼 있다. 이러면은요, 자 연결 리스트는 데이터의 위치값하곤 관계가 없더라 그래서 에이가 여기 또 92번지 없어도 상관없고요. 비가 구십 번째 있어도 상관없고 씨가 아무 데 위치하고 관계없죠 있는데, 대신 노드 구조가 어떻게 되나 에이가 헤드노드제 첫 번째 처리될 데이터가 헤드노드죠 헤드노드 에이를 처리하고 나왔는데 90번이라는 정보가 있습니다. 가르켜 주세요. 구십 번째 가서 비를 처리하고 그죠 알겠나 요런 것처럼 그래서 논리적 표현은 물리적 표현 논리적으로 뭐다 에이 다음에 비 요거 다음에 주소를 주소 찾아갑니다. 예 자 찾아가서 마지막은 늘 포인트 주소 값이 없는 거 요런 놈이 단순히 연결되어 있었지 그죠 자 삽입할 때 여기에 데이터를 집을 넣을 때 포인트 값만 수정하면 되겠죠.
화자 2
1:07:16
포인트 값만 수정해버리면은 연결이 돼 버립니다. 그죠 삭제할 때도 포인트 값만 이놈을 삭제하고 싶다. 비를 삭제하고 싶다. 카면 뭐예요? 여기에 비 주소값 없애보 94 넣어버리면은 비는 자 바로 94번지로 가버립니다. 94번지 가서 여기에 가죠 그죠 비가 없어져 버립니다. 알겠나 포인트 값만 수정으로써 포인트 값만 수정함으로써 모든 데이터를 처리할 수 있는 거 그제 에 그런데 요런 주소값 때문에 데이터의 기억 공간의 낭비는 일어납니다. 이거 필요 없는 데 있어야 되니까. 이해되나 요런 구조 단순 연결 리스트 좋습니다. 이미 앞부분에서 셋째, 그 다음 자 원형 연결 리스트는 방금 단순 연결 리스트에서 마지막 로드가 테일로드의 아까 이거 늘 포인트였었는데 이 테일 노드에 늘 포인트에 헤드 노드의 주소 값을 집어넣어 버리면 원형 가버리죠 그렇지 여기에 그렇죠. 이 원형 원형 손잡아 선놈하고 끝놈하고 손잡아 뿌면 둥글게 둥글게 되는 거죠. 왜 원형 연결해서 그림만 보면 됩니다.
화자 2
1:08:14
자 이런 원형의 특징은 뭐냐 임의의 노드에서 모든 데이터 탐색이 가능합니다. 맞제 아까 저 단수는 뭡니까? 만약 비에서 출발한다. 카면 A를 죽어도 못 찾지 근데 원형은 뭡니까? B에서부터도 A를 검색할 수가 있습니다. 어떤 특정 노드에서 모든 데이터를 탐색이 가능한 구조다 그죠 단순 연결 리스트를 개조한 거고, 단점은 뭡니까? 무한 루프에 빠질 가능성이 크다 자 이게 무슨 말이냐면 현재 이 원형 연결 리스트 자료구조에는 ABCD 4개만 있는데요. 만약 여러 명령을 잘못 내려가지고 F를 찾아라 그러면 컴퓨터는 ABCD 다시 돌아옵니다. 에이 에프 찾을 때가 이 무식합니다. 컴퓨터는 근데 다수는 뭡니까? 끝이라는 게 있기 때문에 ABCD 아 끝이네가 끝내는데 이 원형은 뭐고 계속 돌거든. 돌고 또는 흰색 어 ABCD 무식합니다. 이게 컴퓨터의 장점이에요. 중인이 에프를 찾아라 하면 찾을 때까지 도옵니다.
화자 2
1:09:12
계속 없는데 뭐 이 무한 루프제야 죽을 때까지 돌아요. 이 무한 루프 자 이런 무한 루프 방지법은 뭐다 자 돌다가 에이를 만나면 에이가 헤드노드다 헤드노드라고 알려주면 딱 아 헤드노드 오면 스톱한다. 그죠 요거 뭐 알아도 문제가 많이 나옵니다. 자 이중 연결 리스트는 뭐예요? 2중 연결했을 때는 여러분 뭐고 아까 다스노 데이터부하고 링크부 하나인데 이중 연결했을 때는 링크부가 2개입니다. 링크부가 알겠나 이중 연결했을 때는 뭐 데이터 부가 있지만 링크 좌측 링크 엘라 우측 링크 에 링크 주소모가 2개 있는 거야. 2개 있다 보니까 뭐 하죠. 이놈이 이놈을 가리키고 이놈이 이를 가리키고 즉 양방향 검색이 가능합니다. 그렇죠. 그리고 임의의 노드가 임의의 노드 노드에 포인트가 파악이 되어도 복구 가능한 구조입니다. 자 아까 제 단순히 그냥 원유는 뭐야? 이 포인트 파악이 돼 버리면 못 찾아가요 못 찾겠다. 개꿀인데 이놈은 이놈이 파악이 된 이놈이 있기 때문에 가능하단 말이에요.
화자 2
1:10:11
그죠 이미 복구 가능하고 양방향 검색이 가능한 거고, 근데 기억 공간의 낭비가 많이 일어나죠. 왜 쓸데없는 주소부가 2개나 있기 때문에 그래서 요런 특징들 보고요. 그다음에 이중 원형은 뭡니까? 이중 연결 리스트에서 요 마지막 책 요놈의 요 주소 가리키고 요놈은 요 주소 가리키면 뭐다 이중 원형이죠. 할 거 없제 그림 안 그려도 알겠죠. 이중 원형입니다. 그죠 연결 리스트 너무나 쉽제 그림 정도만 보고 특징 정도만 다음 이제 한번 봅시다 끝이죠. 좋습니다. 좋아요. 자 여러분 오늘 우리가 좀 자료 구조 오늘 여기서 했는 게 문제가 1~2문제 나올 수 있지 좋습니다. 데이터베이스의 첫 번째 챕터 자료 구조 여러분 가지고 우리가 크게 선정구조 정리했죠. 그죠 그래서 내일은 비선형 구조를 하고요. 이제 데이터베이스 쪽으로 서서히 접근하도록 하겠습니다.
화자 2
1:11:10
자 여러분 오늘 또 2시간 동안 고생하셨어요. 방구석에서 안방에서 고생하셨고 내일 또 뜨거운 가슴으로 만나 뵙기를 약속드리면서 오늘은 여기까지 하겠습니다.
'전진하(JJH)교수님의 강의 > 정보처리기사 산업기사' 카테고리의 다른 글
[정보처리] 데이터베이스 - 자료구조3 (0) | 2024.07.09 |
---|---|
[정보처리] 데이터베이스 - 자료구조2 (0) | 2024.07.09 |
[정보처리] 운영체제 - 운영체제의실제 (0) | 2024.07.09 |
[ 정보처리] 운영체제 - 정보관리 (0) | 2024.07.09 |
[ 정보처리] 운영체제 - 분산운영체제 (0) | 2024.07.08 |