전체 글 349

[리눅스시스템🐧] 5장 쉘과 명령어 사용

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 5.1 쉘 소개1) 쉘의 역할- 쉘은 사용자와 운영체제 사이에 창구 역할을 하는 소프트웨어- 명령어 처리기(command processor)- 사용자로부터 명령어를 입력받아 이를 처리한다. 2) 쉘의 종류 : 유닉스/리눅스에서 사용 가능한 쉘의 종류(1) 본 쉘(Bourne shell)- 쉘 실행파일 : /bin/sh- 벨 연구소의 스티븐 본에 의해 개발됨.- 유닉스의 기본 쉘 (2) 콘 쉘- 쉘 실행파일 : /bin/ksh - 1980년대에 별 연구소에서 본 쉘을 확장해서 만듦. (3) C 쉘- 쉘 실행 파일 :/bin/csh- 버클리대학의 빌 조이- 쉘의 핵심 기능 위에 C언어의 특징을 많이 포함함.- BSD 계열의 유닉스에서 많이 사용됨.- ..

[리눅스시스템🐧] 4장 파일 사용

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 4.1 파일 복사 : cp(copy) $ cp [-i] 파일1 파일2: 파일1을 파일2에 복사한다. -i는 대화형 옵션이다.복사 대상 파일과 이름이 같은 파일이 존재하면 덮어쓰기.대화형 옵션을 사용하면 같은 파일이 존재할 때 overwrite 여부를 질문함.$ cp 파일 디렉터리: 파일을 디렉터리로 복사$ cp 파일1 파일2 ... 파일n 디렉터리: 여러 개의 파일들을 지정된 디렉터리에 모두 복사한다.$ cp [-r] 디렉터리1 디렉터리 2r은 리커전 옵션(하위 디렉터리를 포함한 디렉터리 전체)으로 디렉터리1 전체를 디렉터리2에 복사한다. 4.2 파일 이동 : mv(move)- 파일을 디렉터리로 이동$ mv 파일 디랙터리: 파일을 지정된 디렉터리..

[리눅스시스템🐧] 3장 기본 명령어

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 3.1 기본 명령어- 날짜 및 시간 확인$ date- 시스템 정보 확인  $ hostname- 사용자 정보 확인 $ whoami$ who- 디렉터리 내용 확인$ ls- 패스워드 변경$ passwd- 화면 정리$ clear- 온라인 매뉴얼$ man- 명령어에 대한 간단한 설명$ whatis 명령어 3.2 파일과 디렉터리1) 파일의 종류- 일반 파일 (ordinary file)데이터를 가지고 있으면서 디스크에 저장된다.텍스트 파일, 이진 파일- 디렉터리(directory) 또는 폴더(folder)파일들을 계층적으로 조직화하는 데 사용되는 일종의 특수 파일디렉터리내에 파일이나 서브 디렉터리들이 존재한다.- 장치 파일 (device special fil..

[리눅스시스템🐧] 2장 X 윈도우와 데스크톱 환경

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 2.1 X 윈도우 소개1) X 윈도우 시스템- 유닉스/리눅스를 위한 그래픽 사용자 인터페이스 환경- 1984년에 MIT를 중심으로 개발됨- 1987년에 X11, 1996년 X11R6, 2006년 X11R7 버전 개발- 유닉스/리눅스의 표준 윈도우 시스템2) X 윈도우 시스템 특징- 뛰어난 이식성 : 거의 모든 유닉스/리눅스에서 동작할 만큼 뛰어난 이식성- 클라이언트/서버 구조X 윈도우 시스템은 X 서버와 X 클라이언트로 구성X 윈도우 상에서 실행되는 X 응용 프로그램은 모두 X 클라이언트로 X 서버에 디스플레이를 요청함.- 장치의 독립성 : 디스플레이 장치에 의존적이지 않음.- 네트워크의 투명성 : 네트워크 기반의 GUI 2.2 X 윈도우와 데스크..

[리눅스시스템🐧] 1장 유닉스/리눅스 소개

교재 : 리눅스 시스템 원리와 실제 (창병모, 생능출판) 1.1 왜 리눅스인가?1) 동기- 유닉스/리눅스 운영체제는 1970년대 초 AT&T 벨 연구소에서 유닉스가 개발된 이후 지속적으로 발전하고 있다.- 스마트폰, PC, 서버 시스템, 슈퍼컴퓨터에도 사용되며 소프트웨어 경쟁력의 핵심이라 할 수 있다.- 유닉스/리눅스 기반 운영체제안드로이드 OSiOS맥 OS X리눅스BSD 유닉스시스템 VSun 솔라리스IBM AIXHP HP-UXCray 유니코스2) 유닉스의 설계 철학- 단순성 : MIT MULTICS에 반대하여 최소한의 기능만 제공하며 자원에 대한 일관된 관점을 제공.- 이식성 : 이식성을 위해 C언어로 작성되었으며 다양한 플랫폼에 이식 가능.- 개방성 : 소스 코드가 공개되어 있음.3) 유닉스의 특징-..

[ALGOS STUDY] 2023-SUMMER DAY5 트리, 분리집합, 최소 스패닝 트리

트리 - 개념 루트와 루트의 서브 트리로 구성된 계층형 자료구조 최소 하나 이상의 노드가 있어야 함. 이진트리 : 각 노드가 최대 2개의 자식 노드를 갖는 트리 - 트리의 표현 : 배열이나 연결 리스트 이용 - 트리의 탐색 중위 탐색 (inorder) : 왼쪽 서브트리, 루트 노드, 오른쪽 서브트리 순으로 탐색 전위 탐색 (preorder) : 루트 노드, 왼쪽 서브트리, 오른쪽 서브트리 순으로 탐색 후위 탐색 (postorder) : 왼쪽 서브트리, 오른쪽 서브트리, 루트 노드 순으로 탐 - 문제 풀이 예시 : 백준 1991 트리 순회 (https://www.acmicpc.net/problem/1991) #include using namespace std; pair node[28]; int n; voi..

[ALGOS STUDY] 2023-SUMMER DAY4 다이나믹 프로그래밍, 플로이드 와샬

다이나믹 프로그래밍 - 개념 : 큰 문제를 작은 문제로 쪼개서 답을 저장하고 활용하는 것 (이전의 결과들은 기억하면서 수행하기 위한 알고리즘) - 다이나믹 프로그래밍 사용 조건 겹치는 부분 문제 : 동일한 작은 문제들이 반복해서 나타나야 함 최적 부분 구조 : 작은 문제들의 결과가 큰 문제에 상관없이 항상 동일해야 함. - 다이나믹 프로그래밍 알고리즘 구현 방식 bottom-up 방식 아래에서부터 계산을 수행하고 누저시켜 전체 큰 문제를 해결하는 방식 작은 문제의 결과들을 하나씩 저장해나간다. top-down 방식 n에서부터 호출을 시작해 인덱스 0까지 내려간다. 해당 결과 값을 재귀를 통해 전이시켜 재활용 - 다이나믹 프로그래밍 구현 과정 다이나믹 프로그래밍 조건 파악 및 적절성 판단 관계식(점화식) ..

[ALGOS STUDY] 2023-SUMMER DAY3 슬라이딩 윈도우, 투포인터, 누적합

슬라이딩 윈도우 - 개념 : 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 이용해서 문제를 풀이하는 알고리즘 - 특징 1차원 배열에서 O(N*M)의 시간복잡도로 해결해야 할 일을 O(N)으로 해결할 수 있음 한 번 구한 값을 버리지 않고 재사용 구간의 넓이가 고정되어 있음. - 문제 풀이 예시 : 백준 21921 블로그 (https://www.acmicpc.net/problem/21921) #include using namespace std; int daysum[250001]; int main() { int n, x, result, max, cnt = 1, day; cin >> n >> x; cin >> day; daysum[0] = day; for (int i = 1; i < n; i++..

[ALGOS STUDY] 2023-SUMMER DAY2 그래프, DFS/BFS

그래프 - 그래프 : 정점(노드)과 간선(링크)으로 이루어진 자료구조의 일종 - 그래프 탐색 : 하나의 정점으로부터 시작하여 차례대로 모든 정점을 한 번씩 방문하는 것 DFS - 깊이 우선 탐색 (Depth-First Search) : 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리. 방문하지 않은 인접노드가 없으면 스택에서 최상단 노드 pop 2번의 과정을 수행할 수 없을 때까지 반복 - 특징 스택을 활용한 구현, 재귀함수를 통한 구현이 가능함. 공간복잡도가 낮음. 목표 노드가 깊이 있을 경우 빠르게 탐색이 가능함. 해가 없는 경로를 탐색할 경우 단계가 ..

[ALGOS STUDY] 2023-SUMMER DAY1 Bruteforcing, Backtracking

Bruteforce - 개념 : 가능한 모든 경우의 수를 탐색하며 요구조건에만 충족되는 결과만을 가져온다. (완전탐색) 구현이 쉽고 정답만을 출력한다. 시간 측면에서 비효율적이다. 모든 자료를 탐색해야하므로 특정한 구조를 전체적으로 탐색할 수 있는 방법을 필요로 한다. - 완전 탐색 기법 단순 Bruteforce 특정 기법을 사용하지 않고 모든 경우를 만들어 답을 구하는 과정 비트마스크 (BITMASK) 2진수를 이용하는 컴퓨터의 연산을 이용하는 방식 나올 수 있는 모든 경우의 수를 포함되거나, 포함되지 않는 두 가지 선택으로 구성되는 경우에 유용하게 사용 가능 다른 자료구조에 비해 수행시간이 더 빠르다 : O(1) 비트 연산자를 사용해서 코드가 간결하다. 메모리를 더 적게 사용할 수 있다. 재귀 함수 ..