전공과목 정리 92

[자료구조💾] 6장 이진 트리

교재 : 파이썬으로 배우는 자료구조 프로그래밍 (유석종, 휴먼싸이언스) 6.1 이진 트리의 정의1) 트리(tree)- 루트(root)와 루트의 서브트리(sub-tree)로 구성된 계층형(hierarchical) 자료구조- 최소 하나 이상의 노드가 있어야 한다.- 서브 트리는 부모 노드를 제거한 후 남은 부분 트리- 계통도, 조직도, 폴더의 구조 등 계층적 구조를 갖는 영역에서 활용된다. 2) 이진 트리(binary tree)- 각 노드가 최소 2개의 자식 노드를 갖도록 제한하는 트리- ex) 허프만 코딩 트리 (Huffman coding tree)허프만 코딩 : 가변 길이 부호화를 사용하여 텍스트 문서를 압축하는 방법각 문자를 출현 빈도에 따라 나열한다.출현 빈도를 순서대로 트리(tree)의 단말노드(t..

[자료구조💾] 5장 연결 리스트

교재 : 파이썬으로 배우는 자료구조 프로그래밍 (유석종, 휴먼싸이언스) 5.1 연결 리스트 개요1) 연결 리스트의 종류- 연결리스트 (linked list) : 노드들이 링크에 의해 순차적으로 연결된 자료구조- 노드는 값을 저장하는 공간과 노드를 연결하는 링크(link)로 구성된다.- 단일 연결 리스트 (singly linked list) : 노드들이 한 방향으로만 연결된 구조- 이중 연결 리스트 (doubly linked llist) : 앞 뒤 양방향으로 연결된 구조- 체인(chain) : 연결 리스트가 마지막 노드(마지막 노드 링크에 None이 저장됨.)에서 끝나는 구조- 순환 연결 리스트 (circular linked list) : 마지막 노드가 첫 노드와 연결되는 구조 2) 연결 리스트의 표현- ..

[자료구조💾] 4장 스택과 큐

교재 : 파이썬으로 배우는 자료구조 프로그래밍 (유석종, 휴먼싸이언스) 4.1 스택 (stack)1) 스택- 선형 리스트의 특별한 형태- 나중에 들어가는 원소가 가장 먼저 나오는 후입선출(LIFO; Last In First Out) 구조- 함수 호출 관리, 문법 검사(syntax checking), 수식 평가(expression evalution) 등에 많이 사용한다.- top : 마지막으로 추가된 원소를 가리키는 변수- push : 스택에 원소를 추가하는 연산- pop : 스택에서 원소를 삭제하는 연산- 정적 배열로 스택을 구현할 경우, push 함수는 스택에 원소를 추가하기 전에 'stack full' 상태인지, pop 함수는 스택에서 원소를 꺼내기 전에 스택이 빈 상태(top이 -1)인지를 검사한다..

[자료구조💾] 3장 재귀호출

교재 : 파이썬으로 배우는 자료구조 프로그래밍 (유석종, 휴먼싸이언스) 3.1 재귀호출의 개념- 재귀호출(recursion) : 함수의 실행 중에 자기 자신을 다시 호출하는 상황- 함수가 실행되면 함수의 실행 환경 정보(지역변수, 복귀주소 등)가 저장된 활성 레코드가 생성되어 시스템 스택에 추가된다. -> 재귀함수는 호출되는 횟수만큼 활성 레코드가 스택에 쌓임.- 재귀 호출을 멈추는 조건인 종결 조건(exit condition)을 잘못 설정하면 무한 루프에 빠지게 된다.  3.2 이진 탐색1) 이진탐색- 순차 탐색(sequential search) 원하는 원소를 찾을 때까지 순서대로 반복 비교를 수행한다.정렬 과정 없이 바로 탐색을 수행할 수 있지만 탐색 성능 편차가 큰 편이다.- 이진 탐색(binary..

[자료구조💾] 2장 파이썬 자료구조

교재 : 파이썬으로 배우는 자료구조 프로그래밍 (유석종, 휴먼싸이언스) 2.1 파이썬의 특징- 인터프리터(interpreter) 방식의 언어이다.컴파일 과정 없이 문장 단위로 빠른 실행과 테스트가 가능하다.- 객체 지향(object-oriented) 언어이다.클래스를 통하여 객체의 속성과 메소드를 정의할 수 있다.- 동적 타이핑(dynamic typing) 언어이다.변수의 자료형을 선언할 필요 없이 변수에 값이 할당되는 순간, 자료형이 결정된다.- 리스트, 집합, 딕셔너리 등 군집 자료형 기능이 우수하다.시퀀스(sequence) 자료형과 군집(collection) 자료형 지원 기능이 우수하다.문자열 처리 기능이 뛰어나며 인공지능, 데이터과학 분야에서 활용도가 높다.- 파이썬 변수는 값(리터럴)에 대한 참..

[자료구조💾] 1장 자료구조 개요

교재 : 파이썬으로 배우는 자료구조 프로그래밍 (유석종, 휴먼싸이언스) 1.1 소프트웨어와 자료구조1)소프트웨어- 소프트웨어(software) : 특정 기능을 담당하는 단일 혹은 복수의 프로그램- 프로그램 : 처리할 대상인 자료(데이터)와 처리 절차인 알고리즘(algorithm)으로 구성된다.- 프로그래밍(programming) 혹은 코딩(coding) : 프로그램을 설계하는 작업- 알고리즘 : 주어진 문제 해결에 필요한 절차(procedure)를 체계적으로 구성해 놓은 것 - 데이터(data) : 일상생활에서관찰된 정보를 수치 또는 문자로 기록해놓은 것- 정보(information) : 수집된 데이터를 분석하여 새롭게 알아낸 사실- 지식(knowledge) : 연관된 정보들의 모임 2) 자료구조- 자료..

[리눅스시스템🐧] 14장 시스템 관리

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 14.1 시스템 관리자1) 시스템 관리자- 역할사용자 계정 추가 및 삭제소프트웨어 설치, 업그레이드, 삭제시스템 서비스 관리하드웨어 추가 설치시스템 보안데이터 백업- 슈퍼유저(supersuer): 시스템을 관리할 수 있는 사용자로, 슈퍼유저가 사용하는 계정이 root이다. - 슈퍼유저 로그인직접 root 계정으로 로그인다른 계정으로 로그인 후 su(switch user)$ su암호:#sudo 명령어 사용$ sudo 명령어 2) sudo(superuser do)- sudo일반 사용자가 sudo 명령어를 이용하여 원하는 명령어를 관리자 권한으로 실행 가능일반 사용자 계정을 생성할 때 계정 종류를 관리자로 선택해야 함.ex) 관리자 권한으로 apt를 이..

[리눅스시스템🐧] 13장 프로세스 원리

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판)13.1 프로세스 이미지1) 프로세스- 실행 중인 프로그램- 프로그램 실행을 위해서는 프로그램 코드, 데이터, 스택, 힙, U-영역 등이 필요하다.- 프로세스 이미지(구조)는 메모리 내의 프로세스 레이아웃- 프로그램 자체가 프로세스는 아니다. 2) 프로세스 이미지- 프로세스 구조(1) 텍스트(코드) : 프로세스가 실행되는 실행 코드를 저장하는 영역(2) 데이터 : 프로그램 내에 선언된 전역 변수(global variable) 및 정적 변수(static variable) 등을 위한 영역(3) 힙 : 동적 메모리 할당을 위한 영역(4) 스택 : 함수 호출을 구현하기 위한 실행시간 스택(runtime stack)을 위한 영역(5) U-영역 : 열린 파일의..

[리눅스시스템🐧] 12장 파일 시스템과 파일 입출력

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 12.1 파일 시스템1) 파일 시스템 보기- 명령어 : 파일 시스템에 대한 디스크 사용 정보를 보여준다.$ df 파일시스템* 2) 디스크 사용량 보기- 사용법 : 파일 혹은 디렉터리의 사용량을 보여준다. 파일을 명시하지 않으면 현재 디렉터리 내의 모든 파일들의 사용 공간을 보여준다.$ du [-s] 파일명*- -s 옵션 : sun 3) 파일 시스템 구조(1) 부트 블록(Boot block)파일 시스템 시작부에 위치하고 보통 첫 번째 섹터를 차지부트스트랩 코드가 저장되는 블록(2) 슈퍼 블록(Super block)전체 파일 시스템에 대한 * 정보를 저장*정보 : 총 블록 수, 사용 가능한 i-노드 수, 사용 가능한 블록 비트 맵, 블록의 크기, 사용..

[리눅스시스템🐧] 11장 프로그래밍 환경

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 11.1 프로그램 작성과 컴파일1) gedit 문서 편집기 -> 프로그램 작성2) gcc 컴파일러- gcc(GNU cc) 컴파일러 : c 프로그램을 컴파일한다. 옵션을 사용하지 않으면 실행파일 a.out를 생성한다.$ gcc [-옵션] 파일- 간단한 컴파일 및 실행$ gcc test.c$ a.out // 실행- -c 옵션: 목적 파일 생성$ gcc -c test.c- -o 옵션: 실행 파일 생성$ gcc -o result test.o$ gcc -o result test.c- 실행$ result 3) 다중 모듈 프로그램(1) 단일 모듈 프로그램코드의 재사용이 어렵고 여러 사람이 참여하는 프로그래밍이 어렵다. ex)#include #include #d..