일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- LG
- regression
- GPT-4
- Machine Learning
- 오블완
- AI
- 회귀
- 지도학습
- 머신러닝
- Classification
- ChatGPT
- 분류
- LG Aimers 4th
- LG Aimers
- deep learning
- gpt
- PCA
- supervised learning
- 티스토리챌린지
- 해커톤
- OpenAI
- 딥러닝
- LLM
- Today
- Total
목록전체 글 (355)
SYDev

단순 연결 리스트의 개념을 확장한 원형, 양방향 연결 리스트를 구현해보자. 자료구조를 구현할 때, 먼저 그림으로 그려보고 구조를 파악하는 것이 상당히 도움이 되었다. 원형 연결 리스트(Circular Linked List) 원형 연결 리스트의 기본 구조와 내부 함수는 다음과 같이 도식화할 수 있다. 파일명: CLinkedList.h #ifndef __C_LINKED_LIST_H__ #define __C_LINKED_LIST_H__ #define TRUE 1 #define FALSE 0 typedef int Data; typedef struct _node { Data data; struct _node * next; } Node; typedef struct _CLL { Node * tail; Node * c..

'연결'을 기반으로 하는 리스트의 기본을 이해하고, 구현해보자. 연결 리스트의 개념적인 이해 아래와 같이 메모리가 정적인 배열을 이용해 데이터를 저장하면, 메모리의 길이를 변경하는 것이 불가능하다는 단점이 있다. #include int main(void) { int arr[10]; int readCount = 0; int readData; int i; while(1) { printf("자연수 입력: "); scanf("%d", &readData); if(readData next = NULL; if(head == NULL) head = newNode; else ..

토의 내용 정리 각 조에서 나온 질문들을 조원들과 상의하면서 답변하는 시간을 가졌다. 나는 2조의 질문에 대한 답변을 작성했고, 나머지는 피드백 정도만! 파란색 글자는 내가 작성한 의견이다. 1조: 특성의 갯수를 계속 늘리고 규제를 적용한다면 모델의 성능은 계속 좋아지는 것인가? 아니면 특성의 갯수에도 적절한 값이 존재할까? 불필요한 특성이 많아질 수록 그것을 처리하기 위해 규제가 세진다면, 필요한 특성들에 대해서도 규제가 과하게 적용되어 악영향을 줄 수 있을 것 같다. (+ 처리할 연산이 많아짐.) -> 라고 생각을 했었지만, 요즘 트렌드는 되는대로 특성을 늘려서 때려박고, 규제를 적용시키는 것이라고 한다! 따라서, 현재까지는 특성의 양이 많아지면서 생기는 문제보다는 성능이 향상되는 이점이 더 많은 것..

개인적으로 공부하면서 작성한 글이기 때문에, 틀린 내용이 있을 수도 있다는 점 유의하기 바란다. MSE 훈련 데이터의 total loss를 의미하는 MSE(training)은 다음과 같이 훈련데이터셋에 대한 모델의 추정값과 참 값의 차이의 제곱으로 나타난다. 이를 기반으로 테스트 데이터셋의 total loss를 다음과 같이 구할 수 있다. (Irreducible Error는 모델에서 조정하지 못하는 값이다.) 결론만 말하자면, 테스트 데이터셋의 total loss는 bias와 variance를 조정해 줄일 수 있다. 또한, 이런 테스트 데이터셋의 total loss가 작을수록 좋은 예측 모델이라고 할 수 있다. Bias, Variance Bias와 Variance 둘 다, 모델의 loss 또는 error..
자료구조에서의 추상 자료형(ADT)을 이해하고, 배열 기반 리스트를 구현해보자. 추상 자료형(ADT; Abstract Data Type) ADT: 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것을 의미한다. 예를 들어 Wallet이라는 구조체가 있을 때, 이 구조체에 돈을 넣을 수도 있고 꺼낼 수도 있다. 이를 ADT로 변환하면 다음과 같다. Wallet의 ADT int TakeOutMoney(Wallet * pw, int coinNum, int billNum) - 첫 번째 인자로 전달된 주소의 지갑에서 돈을 꺼낸다. - 두, 세 번째 인자로 꺼낼 동전의 수와 지폐의 수를 전달한다. - 꺼내고자 하는 돈의 총액이 반환된다. 그리고 그만큼 돈은 차감된다. void PutMo..
https://cmaven.github.io/vscode/VS-Code-Multi-Compile/ Visual Studio Code(vs code) 파일 분할 컴파일 Visual Studio Code 에서 동일 디렉토리 내의 분할된 파일 컴파일에 대해 정리한다. cmaven.github.io 위 게시물을 평소에 C++ 분할 파일 컴파일할 때 이용했는데, C언어 분할 파일의 경우가 없어서 임의로 추가해봤다. { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "runner": "terminal", "type": "shell", "..
구조체 구조체: 하나 이상의 변수들을 그룹화하여 만든 새로운 자료형 구조체 선언 struct computer { int monitor; //멤버 선언 int keyboard; int ram; }; int main() { struct computer c1; //구조체 변수 c1 선언 return 0; } 구조체 초기화 struct computer { int monitor; int keyboard; int ram; }; int main() { struct computer c1 = { 30, 1, 16 }; } 구조체 멤버 접근 c1.monitor = 30;//구조체변수이름.멤버이름 -> 해당 형태로 접근 가능 c1.keyboard = 10; c1.ram = 4; printf("c1의 monitor: %d\n..

재귀함수를 이해하고, 이를 활용하여 팩토리얼·피보나치 수열 등 여러 함수를 구현해보자. 재귀함수의 기본적인 이해 재귀함수: 함수 내에서 자기 자신을 다시 호출하는 함수를 의미한다. 재귀함수의 작동 원리는 위 그림의 형태와 같이 별도로 설정하지 않으면 멈추지 않고 계속 실행된다. 따라서, 특정 조건을 충족했을 때 재귀함수 호출이 멈추도록해야 하는데, 여기서 이 조건을 '재귀의 탈출조건'이라 한다. 이와 관련된 예제를 살펴보자. #include void Recursive(int num) { if(num Recursive 함수에 0이 전달되면 '재귀의 탈출조건' 성립 팩토리얼: factorial 팩토리얼의 수식적 의미는 다음과 같다. $n! = n * (n-1) * (n-2) * . . . . * 2 * 1$..