본문 바로가기

프로그래밍31

[Python] # 0. 머신러닝 (선형회귀분석)과 딥러닝 (경사하강법 및 활성함수 복습) 데이터분석은 제조업에서 수율개선 및 공정 개선점을 발견하는데 좋은 이정표가 되어줍니다. 디스플레이 하나를 만드는데 수많은 공정데이터가 쌓이게 되는데요. 이러한 데이터표본을 컴퓨터에게 제시해주고 정답을 찾기 위한 가이드라인. 메뉴얼까지 제공하여 학습을 시키는 것이 머신러닝입니다. 반대로 딥러닝은 데이터표본만 컴퓨터에게 던져주면, 컴퓨터가 알아서 가이드라인을 짜고 분류를 하여 학습을 시작합니다. 머신러닝의 대표적이면서도 핵심 예시는 선형회귀분석입니다. 1차 선형함수로 되어있고, 결과값을 y라 한다면 x는 데이터 값들을 의미하구요. 기울기 a는 가중치를, 절편 b는 보정치를 의미합니다. 빨간색 선은 주어진 데이터표본에 가장 최적화된 기울기 값을 찾기 위해 가설을 세운 것들입니다. 물론 우리 눈에는 어떤 기울기.. 2022. 5. 1.
[C언어] # 10. 동적 메모리 할당 malloc 함수 (Stack & Heap 영역) malloc 함수를 설명하기 전에 변수가 저장되는 메모리 공간의 종류들에 대해 설명을 먼저 해보고자 합니다. 메모리 공간은 여러 가지가 있지만 대표적으로 전역변수가 저장되는 Data영역 , 지역변수가 저장되는 Stack영역. 그리고 메모리의 은행 창고의 역할을 하는 Heap영역이 있습니다. 이 글에서 쓰는 동적 메모리란 사용자가 메모리를 자유자재로 할당받는다는 것을 의미합니다. 즉, Heap영역으로부터 메모리를 필요한만큼 빌려쓰고 반환을 합니다. 이게 참 좋은게 배열을 다룰 때입니다. 예를 들어서, 대학교에서 어떤 강의의 수강생에 대한 재수강 여부를 관리하고자 합니다. 여러분들도 아시다시피 중간에 수강철회하는 사람, 새로 수강신청을 한 사람들이 있습니다. 즉, 상황에 따라 유동적으로 바뀝니다. 대략 이 .. 2022. 2. 25.
[C언어] # 9. 포인터에 대한 담백한 이해 (쉽게 설명) C언어를 공부하면서 가장 어려웠던 3가지 개념을 꼽으라면 동적메모리할당, 포인터, 구조체였던거 같습니다. 오늘 작성할 글은 포인터입니다. 저도 많이 부족하지만 포인터에 대한 간략한 이해를 도와보겠습니다. 포인터는 어떤 변수가 메모리 공간을 할당받고 저장되어있을 때, 그 변수가 살고있는 메모리 주소값을 가리키는 것입니다. 말 그대로 진짜 'Point!'인 셈이죠. 레이저 포인터할 때 그 포인터입니다. 우리가 어떤 변수의 초기값을 선언할 때는 항상 그 값들이 가지는 고유주소를 배정받게 됩니다. 이 주소의 값을 보는 방법은 printf를 통해 형식 지정자 "%p"를 사용하면 됩니다. 5라는 값은 현재 000000000062FE1C 라는 주소에서 살고 있군요. * 주의사항 : 앰퍼샌드 & 기호는 두개를 쓰면 '.. 2022. 2. 24.
[C언어] # 8. 배열 기초 응용 문제 (최대값 & 최소값 구하는 프로그램) : 백준 10818번 C언어 10818번: 최소, 최대 (acmicpc.net) 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 주어진 문제는 이렇습니다. 입력받을 정수의 개수를 먼저 선언한 뒤, 정수들을 입력했을 때 최소, 최대값만 나오게 하는 것입니다. 일단 문제를 딱 읽었을 때, 배열과 조건문. 그리고 기준이 될 최대&최소 변수의 선언이 필요해보입니다. #include int main() { int i,count; int max = -1000000; int min = 1000000; scanf("%.. 2022. 2. 22.
[알고리즘] # 0. Big-O / 시간 복잡도(Time Complexity)와 거품 정렬 (Bubble Sort) 알고리즘 공부를 시작하다보면 가장 먼저 마주하는 용어가 '시간 복잡도' 입니다. 이 시간복잡도가 어떤 꼴로 나오냐에 따라 알고리즘의 좋고나쁨을 알 수 있기 때문입니다. 우리 모두 수학을 싫어하는건 알지만 그래프를 하나 보도록 하겠습니다. 너무 잘 나와있어서 설명이 필요없는 그래프긴 하나, 살펴보겠습니다. X축은 Example Scale이라 보시면 되겠습니다. 얼마나 많은 양을 처리해야하는지인데요. Y축을 보면 그 양을 처리하는데 걸리는 시간이 나와있습니다. 더보기 어? 그러면 똑같은 문제의 양이 주어졌어도 푸는데 걸리는 시간이 짧을수록 좋겠네? 맞습니다. 위 그래프에 따르면 지수 함수에 가까워질 때 비효율적이고 로그 함수에 가까워질 때 효율적임을 보입니다. 더보기 그러면 어떤 이유에서 각각의 알고리즘의 .. 2022. 2. 18.
[C언어] # 7. 1차원 배열 & 2차원 배열 (array 함수) / 문자열에 대하여 printf("Welcome, Let's C Language."); // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다. 안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 이번 글에서는 조건에 따라 다른 화면을 출력시킬 수 있도록 해주는 '조건문'에 대해 배워보겠습니다. Q. 먼저 이전 시간에 배운 내용을 잠깐 복습해봅시다. A. 1) Switch문에 대해 배웠습니다. - Switch문은 트리거를 생성하여 어떤 값을 입력하냐에 따라 다른 결과를 출력할 수 있도록 생성한 문법입니다. if문과 비슷한 개념이지만 여러개의 다중조건을 처리하고자할 때는 Switch문이 코드도 좀 더 깔끔한 느낌입니다. 통상적으로는 if문을 많이 쓰긴하나, switch문도 알아둘 필요가 있.. 2022. 1. 27.