목록분류 전체보기 (206)
주뇽's 저장소
4. CPU의 작동 원리 ALU와 제어장치 ALU(계산하는 장치) 계산을 하기 위해서는 피연산자와 수행할 연산이 필요하다. INPUT 레지스터 ⇒ 피연산자 제어 장치 ⇒ 수행할 연산 OUPUT 연산 결과 ⇒ 레지스터 —# 메모리가 아닌 레지스터에 담는 이유는 CPU가 레지스터에 저장하는 속도가 더 빠르기 때문 연산 결과에 대한 부가 정보 ⇒ 플래그 레지스터 플래그 종류 플래그 레지스터 제어장치 INPUT 클럭 ⇒ 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위 클럭 주기에 맞춰서 특정 명령어들이 수행 명령어 레지스터 ⇒ 해석할 명령어 명령어를 해석해서 제어신호를 내보냄 플래그 레지스터 ⇒ 부가적인 값 외부 ⇒ 제어신호 OUTPUT 제어신호 CPU 내부 레지스터 레지스터간의 제어 ALU ..
3. 컴퓨터가 이해하는 정보 : 명령어 개발자가 작성한 소스 코드를 컴퓨터는 1:1로 이해할 수 없다. 고급 언어 → 저급 언어로 변환하는 컴파일 또는 인터프리터 과정이 필요하다. 여기서 저급 언어가 명령어이다. 소스 코드와 명령어 저급언어 기계어 : 0과 1로 이루어진 명령어 구성된 저급 언어 어셈블리어 : 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어 고급언어 컴파일 언어 : 코드를 통으로 번역하며 오류가 하나라도 있다면 소스 코드 전체가 실행되지 않음 인터프리터 언어 : 코드를 한 줄씩 번역 오류발생 전까지 실행이 가능 컴파일 언어* 소스코드(고급 언어) → 컴파일러(컴파일) → 목적 코드 (저급 언어) 인터프리터 언어* 인터프리터에 의해 한 줄씩 실행 컴파일 vs 인터프리터 명령..
2. 컴퓨터가 이해하는 정보 : 데이터 —# 정보 단위 비트(bit) : 0과 1을 표현하는 가장 작은 정보 단위 n비트로는 2^n개의 정보를 표현 가능하다. 8개의 비트를 묶으면 1바이트가 된다 워드(word) : CPU가 한 번에 처리할 수 있는 정보의크기 단위 0과 1로 숫자를 표현하는 방법 이진법(binary) 0과 1로 수를 표현하는 방법이며 컴퓨터는 기본적으로 이진법을 사용한다. 이진법으로 음수를 표현하는 방법 : 2의 보수 1의 보수 ⇒ 이진법으로 표현한 수를 0은 1로 1은 0으로 바꿔준다. 1의 보수의 값에서 1을 더해준다. ex) -11을 표현하고 싶은 경우 11을 2진법으로 표현 1011 1의 보수 : 0100 2의 보수 : 0101 이 때 이진법의 수를 보면 양수 5인지 음수 -11..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pzEOE/btsmBZLw4r6/kphE0RgTW6HjCa9XDPDFq0/img.png)
목표 : YOLO_NAS를 이용하여 people blur 처리 Blur Project Step0. 필요 라이브러리 다운로드 #-- requirements.txt super-gradients==3.1.1 opencv-pythonStep1. 필요 라이브러리 Import import cv2 import torch from super_gradients.training import models import numpy as np import mathStep2. people_blur.py 코드 작성 기본 설정 코드 작성(카메라, GPU, 모델) #-- 카메라 설정 cap = cv2.VideoCapture("/content/myDrive/MyDrive/Summer_project/test_data/people.mp4")..
QUEUE 먼저 들어온 데이터가 먼저 나가는 자료구조 선입선출(FIFO: First-In-First-Out) ex) 매표소의 대기열 통신에서의 데이터 패킷들의 모델링에 이용 프린터와 컴퓨터 사이의 버퍼링 스택과 마찬가지로 프로그래머의 도구 많은 알고리즘에서 사용 우선순위 QUEUE-> Heep 구현 front , rear = -1 로 초기화 rear : 입력 front : 출력 선형큐 배열을 선형으로 사용하여 큐를 구현 # 입력이 많으면 overflow가 발생가능함 쓰지않는 메모리가 많아짐 비어있음에도 불구하고 못 쓰는 공간이 생김 결론적으로 선형큐는 사용하지 않는다. 구현 init() isFull() isEmpty() push(char elem) pop() peek() print() #include #..
스택구조 스택은 자료구조의 기본이다 LIFO구조 제일 마지막에 들어온 원소가 제일 먼저 나감 ex) 바닥부터 책을 하나하나 쌓아 올리는 느낌 #배열과 스택은 비슷하지만 다르다 스택을 이용하여 처리하려면 배열의 값을 다시 스택에 담는 행위가 필요하다. 구현 init()함수 Stack의 포인터를 배열의 외부로 설정 즉 포인터 = -1; isFull()함수 Stack의 들어갈 수 있는 공간의 모든 자리가 꽉 차 있는지 확인 isEmpty()함수 Stack의 들어갈 수 있는 공간이 있는지 확인 push()함수 Stack의 공간이 남아있다면 원하는 원소를 맨 뒤에 하나 추가 pop()함수 Stack의 원소가 있는지 확인 후 있다면 가장 맨 뒤에 원소를 return 해주고 원소 삭제 peek()함수 Stack의 원..
같은 숫자는 싫어 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 ..
Git Git의 배경 Unix라는 대형컴퓨터 운영체제를 리눅스 토발즈가 개인용 컴퓨터 OS로 발전시키며 이것이 리눅스이다. GNU: 공개 소프트웨어 프로젝트 어떤 소프트웨어A를 누구에게나 공개 단, 공개된 소프트웨어 정보를 받았을 시 GPL 라이센스를 따야함 GPL (General Public License): A소프트웨어로 B소프트웨어를 만들 시 B소프트웨어는 무조건 공개되어야 한다. 리눅스를 수 많은 개발자들이 발전시켜가는 과정에서 협업이 필요한데 각자가 개발한 파일을 합쳐야 하는 문제점등이 존재하여 이를 해결하기 위해서 Bitkeeper라는 분산 버전 관리 시스템을 상용화시킴 (Distribution Version Contrl System)사용자가 많아짐에 따라 Bitkkeper가 유료화서비스를 시..