[인프런 워밍업 클럽 4기 - CS] - 3주차 발자국
컴퓨터 구조
Section9) CPU 만들기: 제어 장치 (Control Unit)
명령어 (Instruction)
CPU가 실행할 수 있는 기본 작업 단위
프로그램 카운터 (Program Counter, PC)
다음에 실행할 명령어의 메모리 주소를 저장하는 레지스터
명령어 인출 후 자동으로 증가
스텝 카운터 (Step Counter)
스택의 위치를 가리키는 카운터
시스템 내에서 현재 동작이 몇 번째 단계(스텝)인지 추적하는 카운터
명령어 유형별 실행
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 (너비 우선 탐색): 큐를 사용해 현재 정점에서 가까운 정점들을 먼저 탐색
댓글을 작성해보세요.