[인프런 워밍업 클럽 4기 - CS] - 3주차 발자국

컴퓨터 구조

Section9) CPU 만들기: 제어 장치 (Control Unit)

  1. 명령어 (Instruction)

  • CPU가 실행할 수 있는 기본 작업 단위

  1. 프로그램 카운터 (Program Counter, PC)

  • 다음에 실행할 명령어의 메모리 주소를 저장하는 레지스터

  • 명령어 인출 후 자동으로 증가

  1. 스텝 카운터 (Step Counter)

  • 스택의 위치를 가리키는 카운터

  • 시스템 내에서 현재 동작이 몇 번째 단계(스텝)인지 추적하는 카운터

  1. 명령어 유형별 실행

  • NOP: No Operation (아무 작업 안 함)

  • LOAD: 메모리→레지스터 데이터 이동

  • STORE: 레지스터→메모리 데이터 저장

  • ADD/SUB: 산술 연산 (덧셈/뺄셈)

  • JMP: 무조건 분기

  • JMPC/JMPZ: 조건부 분기 (Carry/Zero 플래그 기반)

  • OUT: 데이터 출력

  • HLT: 프로그램 정지

Section10) 기계어와 어셈블리

어셈블리어 (Assembly Language)

  • 기계어를 인간이 읽기 쉬운 형태로 표현한 저수준 프로그래밍 언어

  • CPU 아키텍처에 1:1 대응되는 언어

어셈블러 (Assembler)

  • 어셈블리어 소스코드를 기계어로 변환하는 시스템 소프트웨어

자료구조와 알고리즘

트라이(Trie)

  • 'retrieval'에서 유래했으며, 단어를 문자 하나씩 노드에 저장, 루트부터 특정 노드까지의 경로가 하나의 접두사 또는 단어가 됩니다. 이진 트리와 달리 자식 노드의 수에 제한이 없음

  • 접두사 검색에 매우 강력하여 자동완성 기능을 구현하는 데 최적화되어 있음

그래프(Graph)

  • 정점 간의 연결 관계를 나타내며, 간선에 방향이나 가중치가 있을 수 있음

  • 주요 용어

    • 정점(Vertex): 데이터가 저장되는 노드

    • 간선(Edge): 정점들을 연결하는 선

    • 인접/이웃: 두 정점이 간선으로 직접 연결된 상태

  • 탐색 방법:

    • DFS (깊이 우선 탐색): 스택이나 재귀를 사용해 한 경로를 끝까지 깊게 탐색합

    • BFS (너비 우선 탐색): 큐를 사용해 현재 정점에서 가까운 정점들을 먼저 탐색

댓글을 작성해보세요.

채널톡 아이콘