목록전체 글 (60)
근본없는 코딩

0. 지난 내용1) 컨텐츠기반 추천시스템 2) 컨텐츠를 활용할 수 있는지 3) 어떻게 컨텐츠들이 서로 연관이 있는지 평가하는 방법 4) 근접이웃기반 컨텐츠기반 추천시스템 -> k-nearest neighbor 5) naive bayes classifer -> 베이즈 추천시스템 6) TF-IDF 개념설명 그리고 실습 📌 추천 시스템 성능 평가 → RMSE 1. Dataset 불러오기. 필요한 데이터들을 불러온다.# 각자 작업 환경에 맞는 경로를 지정해주세요. Google Colab과 Jupyter환경에서 경로가 다를 수 있습니다.path = '/content/drive/MyDrive/Colab Notebooks'ratings_df = pd.read_csv(os.path.join(path, 'ratings..

1. Vector Representation (벡터 표현)** vector representation은 텍스트를 벡터로 표현하는 방법으로 텍스트를 벡터공간 상의 점으로 표시한다.. m개의 review 문서가 있다고 가정하자.. review 문서 전체에 등장하는 단어의 수는 n개이다.. 각 항목은 해당 단어가 review에 등장하는 빈도수를 의미한다.ex) (Review 1, Word 0) = 2 → Review 1에 Word 0은 2번 등장한다. 2. Term Vector Representation (단어 벡터 표현)* Term Weight (단어 가중치). (i, j) = weight. Term Frequency Vector: 단어의 빈도수로 벡터를 나타냄. 문서 i에서의 단어 j의 중요도 * TF -..

Contents-based Recommender System 나이브 베이즈 추천 알고리즘 📌 확률(Probability)- 사건(Event) A가 발생할 가능성- P(A) = 사건 A의 경우의 수 / 전체 경우의 수 📌 조건부 확률(Conditional Probability) 📌 베이즈 정리(Bayes' Theorem) . Confusion Matrix→ Training을 통한 Prediction 성능을 측정하기 위해 예측 value와 실제 value를 비교하기 위한 표→ TP와 TN은 실제 값을 맞게 예측한 부분이며, FP와 FN은 실제 값과 다르게 예측한 부분을 의미① TP (True Positive): 예측을 Positive로 했는데, 맞춘 경우② TN (True Negative): 예측을..

📌 문제 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net ✔️ 요약 직사각형을 그린 후 남은 나머지 영역에 대해, 아래 두 개의 결과를 출력 ① 분리된 영역의 개수 ② 분리된 영역의 넓이를 오름차순으로 정렬 📌 관련 개념 정리 (DFS) . 트리나 그래프에서 한 루트로 탐색하다가 특정 상황에서 최대한 깊숙이 들어가서 확인한 뒤 다시 돌아가 다른 루트로 탐색하는 방식 . 일반적으로 재귀호출을 사용하여 구현 . 갈림길이 나타날 때마다 '다른 길이 있다'는 정보만 기록하면서 자신이 지나간 길을 ..

배열(Array, List) 배열은 연속된 메모리 공간에 순차적으로 저장된 데이터 모음 ✨ 사용 사례 . 순차적인 데이터를 저장하며 값보다는 순서가 중요할 때 . 다차원 데이터를 다룰 때 . 어떤 특정 요소를 빠르게 읽어야 할 때 . 데이터 사이즈가 자주 바뀌지 않으며 요소가 자주 추가되거나 삭제되지 않을 때 🚩리스트 / 튜플 / 딕셔너리 ① 리스트 (list) . 리스트는 어떠한 모음이라고 생각하면 이해하기 쉽다. . 파이썬 리스트는 다른 언어의 배열과는 다른 점이 있는데, 바로 요소의 자료형을 통일해주지 않아도 된다는 것이다. Haedal_character = ['해달이', '시라용', '아리', '매기', '사스미'] ② 튜플 (tuple) . 튜플은 리스트와 거의 유사하지만 수정할 수 없다는 특징..

1. Lock ? - 여러 Connection이 데이터를 수정하고자 할 때, 데이터의 일관성 문제가 발생할 수 있다. - 이 문제를 해결하는 방법 중 1가지가 바로 Lock - 내가 데이터를 Lock을 걸면 다른 Connection들은 이 데이터를 수정할 수 없다! 2. Lock과 Transaction - Lock (동시성 제어) / 트랜잭션 (All or Nothing → 작업의 원자성 보장) - Lock: 동시에 발생하는 수정 요청에 대한 데이터 일관성을 지키기 위한 메커니즘 - 트랜잭션 격리 수준: 여러 트랜잭션에 대해 각 트랜잭션들을 어떻게 처리할지에 대한 전략 ※ Lock의 단위 3. 잠금이 필요한 이유? - 동시성 제어: 트랜잭션들이 동시에 수행될 때, 일관성을 해치지 않도록 데이터 접근을 제..

1. SGA(System Global Area) 란? - SGA는 간단하게 오라클서버의 메모리영역이라고 할 수 있습니다. - SGA는 Oracle의 인스턴스에 대한 데이터와 제어 정보를 가지는 공유 메모리 영역의 집합입니다. → 데이터베이스와 이를 액세스하는 프로세스 사이의 메모리 캐시 영역! [ Database 와 Instance ] ① 실제 사용자가 Database에 접근하면 1개의 Instance가 할당된다. 프로그램의 Thread와같은 개념이다. ② Database는 물리적인 저장장치로 반 영구적이다.하지만 Instance는 소멸성이다. ③ 사용자는 직접적으로 Database에 접근 할 수 없다. 반드시 Instance를 통해서 접근해야하며, Instance는 사용자와 물리적인 Database 간..

안녕하세요. 유튜브 노마드코더를 보고 재밌어서 퍼왔습니다. 생각보다 헷갈리고 많이 틀리네요. 선택지 아래에 '더보기' 누르면 답이 뜨도록 해놨으니 풀어보세요 :D 01. 이 코드의 결과는? A) false B) 4 C) NaN D) " " 더보기 📌정답 # B . 자바스크립트는 사용자에게 오류를 표시하고 싶지 않기 때문. 이를 위해 자바스크립트는 '강제형변환(Type Coercion)'이라는 프로세스를 사용한다. . 연산에 필요한 경우 값을 한 유형에서 다른 유형으로 자동으로 변환 하는 것 . 연산자 '-'는 숫자로만 작동할 수 있으므로, 연산자는 문자열("1")을 숫자로 바꾸는 숫자 변환을 트리거 한다. 02.이 코드의 결과는? A) false B) 6 C) "51" D) NaN 더보기 📌정답 # C ..

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cout > leacture >> credit >> grade; switch (grade[0]) { case 'A': s = 4; break; case 'B': s = 3; break; case 'C': s = 2; break; case 'D': s = 1; break; case 'F': s = 0; break; case 'P': s = 0; credit[0] = '0'; break; } if (grade[1] == '+') s += 0.5; c += credit[0] - '0'; total += (credit[0] - '0') * s; }..

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, cnt=0; int arr[30] = { 0 }; char str[101]; cin >> n; for (int i = 0; i > str; for (int j = 0; j < 26; j++) arr[j] = -1; for (int j = 0; j < 101; j++) { if (str[j] == '\0') { cnt++; break; } if (arr[str[j] - 'a'] == -1 || j - arr[str[j] - 'a']

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); char str[101]; int cnt = 0; cin >> str; for (int i = 0; i < 101; i++) { if (str[i] == '\0') break; if (((str[i] == 'c' || str[i] == 'd') && str[i + 1] == '-') || ((str[i] == 'l' || str[i] == 'n') && str[i + 1] == 'j') || ((str[i] == 'c' || str[i] == 's' || str[i] == 'z') && str[i + 1] == '=')) { cnt++; i..

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int c, n, score[1001]; int sum, goodScoreCnt; double avg; cout > c; for (int i = 0; i > n; sum = 0; goodScoreCnt = 0; for (int j = 0; j > score[j]; sum += score[j]; } avg = (double)sum / n; for (int j = 0; j avg) goodScoreCnt++; } cout

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int cnt[30] = { 0 }, maxCnt = 0, overlap=0; char str[1000005], maxChar; cin >> str; for (int i = 0; i = 'a' && str[i]

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); char str[101]; int len=0; cin >> str; for (int i = 0; i < 101; i++) { if (str[i] == '\0') break; else len++; } for (int i = 0; i < len / 2; i++) { if (str[i] != str[len - 1 - i]) { cout

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, i, j, k, cnt; int basket[101] = { 0, }; int tmp[101] = { 0, }; cin >> n >> m; for (int x = 1; x > i >> j >> k; for(int y=0; y< (k - i); y++) { tmp[y] = basket[i + y]; } for (int y = 0; y < (j - k + 1); y++) { //basket[i + y] = tmp[i+y]; basket[i + y] = basket[k + y]; } for (int y = 0; y < (k-i)..

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; for (int i = 1; i

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int arr[6] = { 1,1,2,2,2,8 }; int n; for (int i = 0; i > n; cout

안녕하세요. React를 처음 시작하기 위해 개발환경 세팅하는 방법에 대해 포스팅을 해보려고 합니다. 툴은 VS Code를 활용할 예정이며, 간단하게 설치 후 App.js를 실행하는 것 까지 진행할 예정입니다. 1) Node.js 설치 #Node.js Node.js는 간단히 말하면, Javascript로 서버를 구축하고 서버에서 Javascript가 작동되도록 해주는 런타임 환경(플랫폼) 입니다. React를 사용하기 위해 우선적으로 필요한 것이기 때문에, 아래 node.js 사이트에 접속해서, 사용자 운영 체제에 맞는 버전의 설치파일을 다운로드 한 후, 설치를 진행해 주시면 됩니다. Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaS..

네트워크 기초 개념 / docker desktop을 활용한 실습 / command line을 활용한 실습 01. 네트워크 개념 Server/Client/Port 등의 개념이 익숙하지 않다면? https://www.opentutorials.org/course/3084 네트워크에 대한 좀 더 깊은 내용을 원한다면? https://www.opentutorials.org/course/3265 1. Docker를 사용하지 않고, Web Server를 사용하는 방법 . 컴퓨터에는 65535개의 포트가 있고, 컴퓨터에 설치되어있는 여러 S/W들을 네트워크적으로 구분해줌 . 위 그림의 우리의 Web Server는 80번 포트에서 접속을 대기하도록 설정되어있는 상태. . http://example.com:80/ind..