목록전체 글 (42)
ddongstudy

1. Newton Fractal 정의 2. CPU 구현 // CPU(점&픽셀) 최종 #include "..\usr\include\GL\freeglut.h" #include #include #include #include #include #include struct ucomplex { float real; float imag; }; const int width = 1024; float scope = 0.8; // 확대,축소 float pre_scope = 0.0; float* z = (float*)malloc(width * width * sizeof(float)); unsigned char Image[width * width * 3]; float dx = 0.0, dy = 0.0; // mouse move..

1. Julia Set 정의 2. CPU 구현 #include #include #include #include #include "..\usr\include\GL\freeglut.h" const int Dim = 1024; unsigned char Image[Dim * Dim * 3]; float Theta = 0.0; int MaxIter = 256; // 콜백 함수 void Render(); void Reshape(int w, int h); void Timer(int id); // 사용자 정의 함수 void CreateJuliaSet(); int Julia(float a, float b, float cx, float cy, float R); void GetColorRainbow(float t, int ..
문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일TiPi 3 5 1 1 2 4 2 10 20 10 20 15 40 200 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일이 걸리며, 받을 수 있는 금액은 15이다. 상담을 ..

1. Ray Tracing 알고리즘이란? 3차원 장면의 사실적인 랜더링을 위한 기법 픽셀에 도달하는 광선을 역으로 추적하여 픽셀의 색상을 결정하는 기법 하나의 픽셀에서 하나의 광선이 나와 픽셀의 색상을 결정한다 광선이 물체와 만나면 2차광선(반사, 굴절)이 생성되고, 이를 재귀적으로 추적하여 픽셀의 색상을 결정한다. 2. 구현에 필요한 개념 직선, 구, 평면의 방정식 계산 광선과 구, 광선과 평면의 교차점 계산 반사광 계산 굴절광 계산 (투명 물체에만 적용) Phong 조명모델 계산 3. 소스 코드 #include #include #include #include "..\2016112622_김동연\usr\include\GL\freeglut.h" #include "gmath.h" using namespace..

1. Banker's Algorithm의 등장배경 Program에서 자원 할당 시 Deadlock 상태의 발생을 피하고자 safety or unsafety 상태인지를 확인하는 알고리즘이 필요하다. 2. 소스 코드 #include #include #include using namespace std; typedef struct inform { int* allocation; // 할당된 자원 int* max; // 최대 필요 자원 int* need; // 필요 자원 }inform; int p_num; // 프로세스 개수 int rtype_num; // 리소스 타입 개수 inform* process; // 프로세스 배열 int* available; // 이용 가능한 리소스 저장 배열 int* total; //전..

1. CPU 스케줄링의 목적 Multiprogramming을 할때 CPU사용을 최대화 하기 위해 CPU 스케줄링 알고리즘이 필요하다. 2. CPU 스케줄링 알고리즘별 특징 First - Come - First - Served (FCFS) FIFO 구조로 먼저 들어온 process 먼저 처리하고, 선점이 발생하지 않는다. 시분할 시스템에서 사용하기에 부적합하다. 프로세스 실행 순서에 따라 성능 차이가 크다. 오버헤드가 적다. Shortest Job First (SJF) 다음 CPU Burst Time이 가장 적은 프로세스에 CPU가 할당된다. 선점이 발생한다. Minimum Average Waiting time 을 구하는데 최적의 알고리즘이다. 다음 CPU 요청 길이를 파악하기가 어려운게 단점이다. pri..

멀티스레드를 두 번 이용하여 40개의 웹페이지를 크롤링하는 프로그램을 만들어보자. 웹 크롤링이란 웹페이지네 데이터를 추출하여 가공하는 행위를 말한다. JAVA JSOUP Library를 이용하여 1980년 ~ 2019년까지 genie차트에서 원하는 가수의 랭킹을 출력하는 프로그램을 만들어 보았다. 1. 멀티스레드를 이용하는 지점 웹 페이지를 크롤링할때 각각의 스레드는 1개의 URL 주소를 할당받고 크롤링하는 작업을 진행한다. 웹 페이지에서 크롤링한 데이터를 이용하여 원하는 검색어를 탐색할 때 각각의 스레드는 1개의 URL 주소를 크롤링한 결과에서 원하는 검색어를 탐색하는 작업을 진행한다. 2. 프로그램 구성 클래스 WebCrawling Class WebCrawling Class는 프로그램의 전반적인 진행..
문제 ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종료되고, 두 팀이 공격과 수비를 서로 바꾼다. 두 팀은 경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순을 변경할 수 없다. 9번 타자까지 공을 쳤는데 3아웃이 발생하지 않은 상태면 이닝은 끝나지 않고, 1번 타자가 다시 타석에 선다. 타순은 이닝이 변경되어도 순서를 유지해야 한다. 예를 들어, 2이닝에 6번 타자가 마지막 타자였다면, 3이닝은 7번 타자부터 타석에 선다. 공격은 투수가 던진 공을 타석에 있는 타자가 치는 것이다. 공격 팀의 선수가 1루, 2루, 3루를 거..