분류 전체보기

CS/HCI 윈도우즈프로그래밍

[Computer Vision] 1. introduction

Computer Vision컴퓨터 비전은 컴퓨터를 이용하여 시각 기능을 갖는 기계 장치를 만드는 기술 분야를 통칭한다.자율 주행, 수술 로봇, 행성 탐사, 군사 등 다양한 분야에 사용된다. 컴퓨터 비전이 해결하려는 문제는 크게 2가지가 있다. 1. 사람의 시각에 준하는 인공 시각을 만든다. (제약이 없는 상황 (이미지) 를 인식한다.)과학적으로 접근하여 사람 시각의 원리를 밝혀내고 컴퓨터로 모방하려고 한다.뇌 과학의 주요 관심사이며, (지식 표현, 학습, 추론, 창작) 과 같은 인공 지능이 필수적이다. 문제는 사람이 당연하게 2D로 들어오는 시각정보를 보고 3D를 판단하는 것을 기계가 할 수 있게 하는 것이 어렵다.2D 이미지로부터 3D 정보를 추론하는 것을 '역 문제' (Inverse Problem) ..

알고리즘 (PS)/BOJ

[백준] 1661 - 다솜이의 신발가게 (Python)

https://www.acmicpc.net/problem/1661 문제 분류를 봐도 아이디어를 떠올리기 힘들었던 문제분류를 보기 전까지는 자연스럽게 그리디가 계속 떠올랐다. 우선 N이 작기때문에 뭔가 다 해보면 될 것 같다는 생각은 든다.그런데 어떻게 다 해봐야할 지 감이 잘 안온다.이 문제를 풀 때는 한번 예제 입력 1번에 해당하는 케이스를 다 써보면 풀이를 떠올릴 수 있다. 예제 입력에 1번에 있는 물건 3개에 대해서 각각을 사는지 안사는지 경우의 수를 모두 따지면 이렇게 8가지가 나온다.이를 직접 손으로 다 쓰다보면 규칙이 보인다. 어쨌든 할인율은 결국 1, 2, 3 프로중 하나밖에 없다.그리고 최종 할인되는 가격은 어떤 물건을 먼저 사느냐에 상관없이 항상 기존 가격 * 각각의 할인율들의 곱으로 표..

알고리즘 (PS)/BOJ

[백준] 17780 - 새로운 게임 (Python)

요구사항에 맞게 구현하면 되는 문제오랜만에 풀어서 그런지 꽤 어려웠다.. 윷놀이 문제처럼 말을 이동하다가 다른 말을 만나면 쌓아야 하는데, 말을 쌓더라도 자신이 갖고있는 방향은 바뀌면 안된다. class Unit: def __init__(self, number, row, col, direction): self.number = number self.row = row self.col = col self.direction = direction def check_next(self): if self.direction == RIGHT: return self.row, self.col + 1 if self.dire..

CS/컴퓨터 구조

[컴퓨터 구조] 16. Single Cycle MIPS - 성능

Critical Path (임계 경로)Single Cycle MIPS 는 말 그대로 하나의 사이클에 모든 명령어를 처리하는 CPU이다.add 명령어도, branch 명령어도, lw, sw 명령어도 모두 1Cycle에 처리한다. 이때 이 CPU의 성능을 빠르게 하려면 어떻게 할 수 있을까?간단하게 생각할 수 있는 것은 1 Cycle의 주기를 짧게 가져가는 것이다. (주파수를 높이기)그렇다면 단순히 주파수를 높이기만하면 성능도 그에 따라서 높아지기만 할까? 사실은 그렇지않다.왜냐하면 Clock Cycle Time은 Critical Path에 의해 제약을 받기 때문이다.(Critical Path == 명령어를 실행하는데 가장 긴 시간이 걸리는 경로) 현재 설계한 MIPS 회로에서 Critical Path 를 ..

CS/컴퓨터 구조

[컴퓨터 구조] 15. Single Cycle MIPS - Control Unit

Control Unit Single Cycle MIPS 에서 Control Unit은 위와 같은 구조로 되어있다.fetch한 명령어에서 Opcode를 가져와서 해석하는 Main Decoder, Funct 를 가져와서 해석하는 ALU Decoder로 구성된다.(사실 구분하지 않고 한번에 만들도록 구현할 수도 있지만, 이렇게 분리해서 구현할 수도 있다.) Opcode 를 가져오면 이를 통해 가져온 명령어의 타입이 R, I, J 중에 어떤 타입인지 알 수 있다.만약 가져온 명령어의 타입이 R 타입이 아니라면 Funct 필드로서 가져온 데이터는 무시한다. 먼저 Main Decoder가 내보내는 컨트롤 신호의 종류를 복습해보자. 1. MemToReg연산한 결과를 메모리에 쓸 지, 레지스터에 쓸 지 결정하는 플래그..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 22. Transport Layer (8) : TCP 연결 설정 (3-way handshake)

TCP connection managementTCP를 이용해서 데이터를 주고 받으려면, 그 전에 먼저 sender와 receiver 사이에 'handshake'가 필요하다.연결 설정하는 것에 서로 동의하고, 어떤 seq 넘버를 시작점으로해서 데이터를 주고 받을 지 서로에게 알리는 과정을 거치는 것이다. UDP는 이 과정이 필요없다. 내가 보내고 싶으면 상대방이 준비되어 있는지 확인하지 않고 그냥 보내면 된다.하지만 TCP는 신뢰성을 보장해야 하기 때문에 연결을 설정하는 과정을 사전에 거쳐야 한다. 사전에 협의하는 내용은 구체적으로 아래와 같다. 1. 서로의 IP, port 번호, TCP 소켓 여부를 확인한다.2. 데이터를 보낼 때 시작할 initial Seq Number (항상 0으로 시작하는게 아니라 ..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 21. Transport Layer (7) : TCP Flow Control (흐름 제어)

Flow Control세그먼트의 흐름을 제어하는 것1:1 상황에서 자신의 윈도우가 넘치지 않을 정도로만 세그먼트를 보내도록 리시버가 남은 버퍼의 크기를 센더에게 알려주는 것을 '흐름 제어' 라고 한다.센더는 리시버로부터 여유 공간에 맞게 추가 데이터를 보냄으로써 리시버의 버퍼가 넘치지 않도록한다.  위 그림은 리시버의 프로토콜 스택을 보여준다.sender가 보낸 데이터는 IP 헤더 (녹색) 이 붙은 채로  3계층 (네트워크 계층) 을 지나고,3계층에서 TCP로 payload를 넘겨줄 것이다. 이 payload 데이터는 TCP 소켓의 receiver buffer에 담겨있다가, 어플리케이션이 데이터를 읽어가면 그때 버퍼에서 데이터를 삭제한다. 그런데 만약 어플리케이션이 다른 로직을 수행하느라 바빠서 데이터를..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 20. Transport Layer (6) : TCP

TCP 개요TCP 는 RFC 793 에서 처음 제시된 프로토콜로, 아래와 같은 특징을 가진다. 1. point - to - point 프로토콜TCP는 하나의 sender 와 하나의 receiver 사이에 일어나는 통신에 대한 프로토콜이다.(참고로 1:1 이 아닌 통신으로는 브로드캐스트(1:N, 모두가 수신하도록 전송하는 방법)와 멀티캐스트(특정 그룹만 수신하도록 전송하는 방법)가 있다.) 2. 신뢰성 제공, 정해진 순서에 따른 byte stream 제공byte stream을 제공한다는 의미는 어플리케이션이 보낸 메세지 단위로 데이터를 전송하지 않는다는 의미이다.여러 메세지에 대해서 메세지 단위로 구분해서 데이터를 보내주지 않고, 정해진 byte 단위로 구분해서 전송하므로, 어플리케이션이 생성한 메세지의 ..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 19. Transport Layer (5) : Go-Back-N (GBN), Selective Repeat (SR)

Pipelined Protocolrdt 3.0 프로토콜은 stop and wait 방식의 프로토콜이라 performance 가 매우 좋지 않았다.이를 해결하기 위해 pipeline 기법을 이용하여 한번에 여러개 패킷을 전송하는 아이디어가 제시되었다.이와 관련된 아이디어는 크게 Go-Back-N (GBN) 과 Selective Repeat (SR) 프로토콜이 있다.이 프로토콜들은 pipelined protocol 로 분류한다.먼저 Go-Back-N 프로토콜에 대해 정리하자. Go-Back-Nsender먼저 Go-Back-N 프로토콜을 사용하는 sender 입장을 살펴보자.sender는 다수의 pipelined packet을 보내야 하기 때문에 '윈도우' 를 사용한다.'윈도우'라는 이름은 슬라이딩 윈도우 기..

CS/프로그래밍언어론

[ Lex/Yacc ] 내가 만든 테스트케이스 (테스트 파일 포함)

테스트 파일아래 테스트 케이스를 일일히 입력으로 넣고 빼는 게 불편해서 테스트 케이스 파일과 스크립트를 작성했다.https://github.com/kckc0608/Programming-Language-HW/tree/main/HW2 Programming-Language-HW/HW2 at main · kckc0608/Programming-Language-HW프로그래밍 언어론 과제 레포. Contribute to kckc0608/Programming-Language-HW development by creating an account on GitHub.github.com위 레포지토리에 테스트 케이스 파일들을 저장하였다.A. Function함수 정의, 함수 사용 (내장 함수 포함) 횟수 카운팅함수가 전방 선언되고..

에버듀
'분류 전체보기' 카테고리의 글 목록 (19 Page)