
데이터에서의 미분은 수학에서의 미분과 비슷하지만 다르다. 이 식을 통해 Loss= Y - T 이다. (Y는 구한 값이고 T는 정답값이라고 할 수 있다) Loss가 최소가 되어야 하는데 T는 정해져 있는 값이기에 Y를 수정해야 한다. => Y는 X ·w+b로 계산되었으니 w와 b가 변화의 대상이다. 이를 위해 loss가 최소가 되도록 w와 b를 공부해야 한다. 이는 미분으로 w와 b의 값을 변화시킬 수 있다. 이처럼 현재의 w에서 미분한 값을 빼서 다음의 w에 사용하고, 현재의 b에서 미분한 값을 빼서 다음의 b에 사용한다. 수학에서 이 미분식은 기울기를 구하기 위해서 사용되었다. 하지만 데이터의 관점에서 이 식을 보자면 아주 미세한 입력의 변화에 따라서 출력이 얼만큼 변화하는 지를 나타내는 식이다. 이 ..

풀이과정 1. 각 스테이지와 같은 번호를 저장한다. 2. count와 s_size를 통해서 실패율을 인덱스와 같이 저장한다. 3. compare함수를 통해 정렬한다. #include #include #include using namespace std; bool compare(pair &a, pair &b){ if(a.second==b.second) return a.firstb.second; } vector solution(int N, vector stages) { vector answer; int count=0, s_size=stages.size(); vector fail; //index, 실패율 for(int i=1;i

풀이과정 1. 숫자면 collect에 넣는다. 2. 문자면 tmp에 하나씩 넣어서 해당 문자열의 번호를 찾는다. 3. collect에 넣은 숫자들을 answer에 더해준다. #include #include #include using namespace std; int solution(string s) { int i,j; int answer = 0; string tmp=""; vector word{"zero","one","two","three","four","five","six","seven","eight","nine"}; vector collect; for(i=0;i=48 && s[i]

풀이과정 1. 입력된 n의 1의 개수를 구한다. 2. n의 값을 하나씩 크게 해서 1의 개수가 같을 때 해당 n을 반환한다. #include #include using namespace std; int toBinary(int n){ int count=0; while(n>0){ if(n%2==1) count++; n/=2; } return count; } int toBigger(int n, int count){ while(1){ int tmp_one=toBinary(++n); if(tmp_one==count) break; } return n; } int solution(int n) { int answer = 0; int one_count=toBinary(n); //현재 n의 1의 개수 return toBi..

풀이과정 1. 모든 문자열을 소문자로 바꿔준다. 2. find함수를 이용하여 현재 v에 있는지 없는지 확인한다. 3. 있다면 hit으로 해당 위치에 있는 문자열을 지우고 다시 넣는다. 4. 없다면 miss로 현재 v 사이즈에 따라서 그냥 넣을지, 삭제하고 넣을지를 결정한다. #include #include #include using namespace std; int solution(int cacheSize, vector cities) { int answer = 0; vector v; for(int i=0;i

#include #include #include using namespace std; string solution(string new_id) { int i, end_count = 0; string answer = new_id; for (i = 0; i = 65 && answer[i] = 'a' && answer[i] = '0' && answer[i] = 16) { answer.erase(15, answer.length()); } printf("6-1. 다른 문자 제거 결과: %s \n", answer.c_str()); if (answer[answer.length() - 1] == '.') answer.erase(answer.leng..

* process란? -> 실행 중인 프로그램으로 메모리에 올라간 프로그램을 뜻한다. -> 하나의 프로그램에서 여러 프로세스가 생길 수 있다. 1. process 개념 프로세스는 여러 부분으로 구분되며 stack, heap, data, text로 이루어져있다. +) data 안에서도 initialized data와 uninitialized data로 구분된다. 2. process state new - 처음 만들어졌을 때 생성된 상태 ready - 준비 작업이 끝난 실행 가능한 상태 run - 지금 CPU에서 돌아가는 상태 wait - I/O 요청으로 인해 기다려야 하는 상태 terminate - 프로세스의 실행이 다 끝난 상태 3. PCB (process control block) PCB는 유지해야 하는..

xv6에서 시스템 콜을 추가하는 방법은 생각보다 간단합니다. 밑의 파일들을 보고 추가하려는 system call을 유사하게 설정하면 되기 때문입니다. 일단 봐야 할 부분은 sysproc.c syscall.c syscall.h usys.S user.h 입니다. 1. sysproc.c system call 함수들이 구현되어 있는 파일로 추가하려는 함수를 해당 형식에 맞게 구현하면 됩니다. 형식은 밑의 코드와 같습니다. int sys_OOO(void){ //동작하고 싶은 코드 } 2. syscall.c 추가하려는 system call을 기존의 system call함수 밑에 똑같은 형식으로 작성해줍니다. 3. syscall.h syscall.h에서는 system call을 번호와 매핑해주는 공간입니다. 추가하려..

풀이 과정 1. 문자열을 2개의 문자열만 추출해서 m에 넣는다. 2. 해당 문자열을 s1, s2에 넣는다. 3. s1과 s2를 통해서 유사도를 구한다. 문제 설명칸에 이와 같은 설명이 있어 이처럼 min, max를 이용하는 방식을 사용했다. #include #include #include using namespace std; map m; map s1; map s2; void jacquard(string s, int k) { for (int i = 0; i 122 || s[i + 1] 122) continue; if ((s[i] >= 91 && s[i] = 91 ..

풀이 과정 1. 이전 단어의 끝과 다음 단어의 첫 글자를 비교한다. 2. 중복된 단어가 들어갔을 수 있으니 map을 이용하여 처리한다. 3. pass를 통해서 끝까지 진행되었는지 알아본다. 4. 중단된 경우 i값을 통해서 몇번째 단어인지 알아낸다. #include #include #include using namespace std; bool pass = true; vector solution(int n, vector words) { int i; vector answer; map overlap; overlap[words[0]]++; for (i = 1; i < words.size(); i++) { char prev = words[i - 1][words[i - 1].length() - 1]; char nex..

풀이 과정 1. genres를 탐색하며 musicTotal과 genresTotal에 값을 더한다. 2. 장르를 정렬하기 위해서 벡터로 넣어서 정렬한다. 3. for문으로 musicTotal에서 장르별 횟수를 정렬한다. 4. count를 하여서 2개씩만 answer에 넣어준다. #include #include #include #include using namespace std; bool cmp(const pair& a, const pair& b) { return a.second > b.second; } bool cmp2(const pair& a, const pair& b) { if (a.second == b.second) return a.first b.s..

풀이 과정 1. 예외사항인 집합이 존재하지 않는 경우 처리한다. 2. s를 n에 맞게 나눈다. 3. s에서 나온 숫자만큼을 뺀다. 4. 해당 숫자를 answer에 넣는다. #include #include using namespace std; vector solution(int n, int s) { vector answer; if (s / n 0; i--) { int tmp = s / i; s -= tmp; answer.push_back(tmp); } return answer; }
- Total
- Today
- Yesterday
- springboot
- PostgreSQL
- qemu
- 머신러닝
- 이진변환반복하기
- 프리티어
- 실패율
- AWS
- 프로그래머스
- 최고의집합
- interrupt
- Android
- 우분투설치
- 영어끝말잇기
- xv6
- 뉴스클러스터링
- PasswordEncoder
- 시스템콜
- 백준
- RDS
- 최솟값구하기
- 정수삼각형
- 다음큰숫자
- 괄호회전하기
- ubuntu
- 응답코드
- Auditing
- dp
- OS
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |