스케줄링 기법스케줄링 기법은 사용중인 프로세스에서 자원을 빼앗을 수 있는지의 여부에 따라 선점 스케줄링 기법과 비선점 스케줄링 기법이 있다. ⓐ 선점(Preemptive) 기법 - RR, SRT, MFQ 등하나의 프로세스가 CPU를 점유하고 있을 때 다른 프로세스가 프로세서를 빼앗을 수 있는 방법을 선점 스케줄링이라고 한다. 선점 스케줄링 방식은 프로세스의 우선 순위가 높은 프로세스가 CPU를 먼저 차지하기가 용이하기 때문에 실시간 시분할 시스템에서 사용한다.- 우선 순위가 높은 프로세스가 먼저 수행되어야 할 때 유용하다.- 빠른 응답 시간을 요구하는 대화식 시분할 시스템이나 처리 시간이 제한되어 있는 실시간 시스템에 유용하다.- 많은 오버헤드를 초래한다.(컨텍스트 스윗칭) ⓑ 비선점(Non-preemp..
위와 같은 릴레이션들이 있다.Reserves의 sid는 외래키이며 Sailors의 sid(기본키)를 참조한다.또한 Reserves의 또다른 외래키 bid는 Boats의 bid(기본키)를 참조한다. 따라서 선원과 보트의 관계는 M:N관계인것을 알 수 있다. Q1. 배 103을 예약한 뱃사람의 이름을 구하시오. 오른쪽과 같은 3가지 답이 가능하지만 솔루션 1번이 가장 최적화된 관계대수이다.2번은 I/O코스트가 매우 크다. Q2. 적색 배를 예약한 뱃사람의 이름을 구하시오. 아래 관계대수식이 좀더 최적화된 식이다. Q5. 적색 배나 녹색 배를 예약한 뱃사람의 이름을 구하시오. 이 질의의 결과로 Dustin,Horatio,Lubber라는 이름을 얻게 된다. Q6. 적색 배와 녹색 배를 예약한 뱃사람의 이름을 구..
관계 대수의 결과로 나오는 릴레이션은 항상 중복이 제거된 상태로 된다고 가정한다. 하지만 실제로 데이터베이스에서는 중복을 제거하려고 하면 굉장히 많은 연산이 필요할 수 있기 때문에 중복을 제거 하지 않은 상태로 결과 릴레이션을 내놓는다.S2 sid sname rating age 2858 yuppyRusty 910 35.035.0 이 있을때 πage(S2) 의 결과는 age 35.0 35.0 이다. 하지만 실제로는 35.0은 한번만 표시해야 한다. 두 릴레이션 인스턴스가 합병 가능한 경우 합집합,교집합,차집합 연산이 가능하다. 합병가능 -> 두 릴레이션의 필드 수가 서로 같고, 왼쪽 부터 오른쪽까지 차례 대로 필드의 도메인이 같아야 한다. S1과 S2 라는 두 테이블이 있을때 집합연산(합,교,차집합)을 한..
기본 DFS문제 1인곳부터 dfs를 시작하되 방문한곳은 0으로 바꿔놓는다. dfs를 시작하는곳에서 count를 증가시켜준다. 소스코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include #include #include using namespace std;vector result;bool input[51][51];int n,m;int diffx[8] = {-1,0,1,-1,1,-1,0,1};int diffy[8] = {1,1,1,0,0,-1,-1,-1}; void dfs(int x,int y){ if(xn || ym)return; if(input[x][y] =..
이 문제도 if else떡칠만 하면 되는 쉬운문제인데 약간 함정을 파놓았다.숫자가 0~9만 되는게 아니라 10까지도 된다는것과 스타상을 받으면 바로 전 숫자까지 2배를 시켜줘야 한다는점 등등.. 문제 자체는 쉬운데 풀다가 계속 디테일을 놓쳤다 이것도 한 20분좀넘게 걸린거 같다 시간을 줄이자..문제 이해하는게 더 오래걸린듯 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566#include #include #include using namespace std;vector result; int main(){ string str; cin>>st..
풀긴 풀었는데 여러번 수정해서 풀었다.. 시간을 좀 줄여야겠다 나는 비트연산으로 안풀고 스트링으로 풀었다 근데 다시 생각해보니까 정수 두개를 비트연산 | 해주고 나서 1인지 0인지 체크해서 # 또는 공백으로 바꾸는 방법도 있겠다. 이 문제 푸는데 거의 20~30분 걸린거 같다. 좀더 시간을 줄이자 다음에 비트연산으로 다시 풀어보자. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include#include#includeusing namespace std; int n;int arr1[17];int arr2[17];vector strv;string convert(in..
요즘 문제 풀면서 느끼는건데 실력이 좀 는거같다 내가 생각한대로 알고리즘 짜면 테스트 케이스는 웬만하면 다 나오는편인것 같아서 뿌듯하다. dp[i][1] -> i 번째 열의 첫번째 행 원소를 택하는 경우dp[i][2] -> i번째 열의 두번째 행 원소를 택하는 경우dp[i][3] -> i번째 열의 원소를 아무것도 선택하지 않는 경우 를 나타낸것이다. dp[2][1] -> 1행 2열의 원소를 택했을때 얻을수있는 최대 점수 -> 30을 택하고 20을 택하면 되므로 50dp[2][2]- > 2행 2열의 원소를 택했을때 얻을수 있는 최대 점수 -> 40을 택하고 10을 택하면 되므로 합이 50dp[2][3] -> 2열의 원소를 아무것도 택하지 않았을때 최대 점수 -> 그열의 전열까지의최대점수 ->dp[1][1]..
기본 BFS문제에서 약간 생각을 좀 더 해야되서 난이도를 중으로 채택했다. 해설 4 6110110110110111111 111101이런 미로가 있다고 치자. 기본 bfs의 동작 방식은 큐에 다음 방문해야할 곳을 저장해 놓고 큐에서 하나하나 꺼내면서 그 위치에 방문해가면서 방문했을때 문제 조건에 맞는 어떤 처리를 해준다. 이 행동을 큐가 완전히 빌때까지 무한 반복 하는것이다. 하지만 여기서는 bfs를 해 나가면서 현재 내가 방문한 곳이 시작점으로부터 얼마나 떨어져있는지를 기록해 놓아야 한다. 그러기 위해서 나는 2차원 memo라는 배열을 하나 더 선언했고, 이곳에 현재 방문한 곳부터 시작점까지의 거리를 기록해나갔다. while(xdeq.size() != 0) { int x = xdeq.front(); in..
- Total
- Today
- Yesterday
- design system
- Babel
- Action
- props
- computed
- state
- Next.js
- reflow
- rendering scope
- storybook
- react
- type alias
- Polyfill
- webpack
- return type
- atomic design
- useRef
- react hooks
- javascript
- server side rendering
- hydrate
- promise
- typescript
- mobx
- await
- useEffect
- reactdom
- reducer
- es6
- async
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |