# edwith
[MIT] 데이터 사이언스 기초
탐욕 알고리즘(Greedy Algorithm) 결정할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 최종 답에 도달하는 방식 장점 구현하기 쉬움 매우 빠름 단점 최적일 있고 아닐수도 있는 해를 구함 구한 해가 최적에 얼마나 가까운지 모름 무차별 대입 알고리즘(Brute Force Algorithm) 탐욕 알고리즘을 대체할 수 있는 알고리즘 항목의 조합 가능한 수를 열거한 후, 전체 합이 가중치를 넘어가는 것은 제거 동적 프로그래밍(Dynamic Programming) 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법 최적 부분 구조 문제일 경우 풀 수 있는 방법 For x > 1, fib(x) = fib(x-1) + fib(x-2) 중복 부분 문제일 경우 풀 수 있는 방법 최적 해를 구할 때 같은 문제를 여러 변 풀어야

[하버드 확률론 기초 : Statistics 110] 5강- 조건부 확률과 전확률정리 (Conditioning Continued, Law of Total Probability)
문제 푸는 방법 간단한 케이스와 극단적인 케이스테 적용해보기 문제를 작은 문제들로 쪼개서 생각해보기 $A1, A2, A3, A4$: 전체인 $S$를 분할한 것 (서로소) 주어진 자료로 문제를 잘 '분할'하여 접근하기 $S$를 $A1, A2, ... A_n$의 서로소인 분할들로 나누어 놓았다고 했을 때, $$P(B) = P(B \cap A1) + P(B \cap A2) + ... + P(B \cap A_n)$$ 가 성립하며, 이는 곧 $$= P(B|A1)P(A1) + P(B|A2)P(A2) +... + P(B|An)P(An)$$ 로도 다시 쓰일 수 있다. 이를 전체 확률의 법칙(Law of Total Probability)라고 한다. **예

[하버드 확률론 기초 : Statistics 110] 4강- 조건부 확률 (Conditional Probability)
Independence 정의 : $P(A \cap B) = P(A)P(B)P(A∩B)=P(A)P(B)$이 성립할 때, 사건 A와 B는 독립이다. 주의하기: 서로소(disjoint) 와 구별하기 A와 B가 서로소인 사건이라면, A가 발생했을 때 B는 발생할 수 없다. (한편, A와 B가 독립이라면, 사건 A의 발생은 B의 발생여부에 대한 그 어떤 영향도 끼치지 않음) $P(A \cap B) = P(A)P(B)\\ P(B \cap C) = P(B)P(C)\\ P(C \cap A) = P(C)P(A)\\ P(A \cap B \cap C) = P(A)P(B)P(C)$가 모두 성립할 때, 사건 A, B, C는 독립이다. → 쌍으로 독립(pairwise independence)과 전체 독립 모두 확인해야 A, B, C의 독립을 확인할 수 있다. 예제 ) Newton-Pepys Problem(1693) – 공정한 주사위를 갖고 있

[하버드 확률론 기초 : Statistics 110] 2강 - 해석을 통한 문제풀이 및 확률의 공리 (Story Proofs, Axioms of Probability)
표본추출을 정리한 표(Sampling Table): n개 중에서 k개 뽑기 다른 경우들은 곱의 법칙으로 설명이 되지만, (복원, 순서 상관이 없는) 경우 그렇지 않음. n개에서 k개를 순서 상관 없이, 복원하며 뽑는 경우의 수: $\left(\begin{array}{c}n+k-1 \\ k\end{array}\right)$ → 숫자 대입해서 확인해보기 (일반적인 경우) k=1 대입: $\left(\begin{array}{l}n \\ 1\end{array}\right)$ (극단적인 경우) k=0 대입: $\left(\begin{array}{c}n-1 \\ 0\end{array}\right)$ (간단하지만 당연하지는 않은 값) n=2 대입: $\left(\begin{array}{c}k+1 \\

[하버드 확률론 기초 : Statistics 110] 1강 - 확률과 셈 원리 (Probability and Counting)
확률론의 활용 영역 유전학, 물리학, 계량경제학, 금융, 역사학, 정치 인문학, 사회과학계에서도 중요도와 활용이 늘어나고 있음 도박과 게임 - 통게에서 여러 번 연구된 주제이다(페르마, 파스칼) 인생 전반: (수학이 확실성에 대한 학문이라면,) 확률은 불확실성(uncertainty)을 계량화하는 것을 가능하게 해 준다. 표본 공간(sample space): 시행에서 발생 가능한 모든 경우의 집합 사건(event): 표본공간의 부분집합 확률의 naive한 정의 내포하고 있는 가정: 모든 사건이 발생할 확률은 같다. 유한한 표본공간 항상 이 가정이 만족되는 것은 아니기 때문에 적용 불가능한 경우들이 있다! *
[MIT] 데이터 사이언스 기초
계산 모델(Computation Model) 이제까지 일어났던 무언가를 이해하거나 매일 보는 현상들을 설명하는 모델 아직 일어나지 않은 미래를 예측할 수 있게 해주는 모델 예) 날씨 변화 모델 : 천 년동안 날씨가 어떻게 변했는지에 대한 모델과 미래에 어떻게 될 지 예측하는 모델을 만들 수 있음 최적화모델, 통계적 모델, 시뮬레이션 모델이 있는데 그중 최적화 모델에 대해 학습 최적화 모델(Optimization Model) 제한 조건을 가지며 목적 함수를 최대화 또는 최소화하는 모델 제한조건이란(없을 수도 있음) 반드시 지켜야 하는 조건(ex)1000달러 이상 쓸수 없음) 냅색(배낭) 문제 제한 조건 : 냅색 안에 들어갈 수 있는 양 도둑이 가장 값비싼 물건을 훔쳐야 하는 최적화 문제 연속 냅색 문제 일부분만 가져갈 수 있는 문제-금괴가 아닌 금모래로 가져갈 수 있는 경우 금괴가 있는 경우 금가
1-2. Python 프로그램 작성 예제
새로운 함수 만들기 함수: 여러 개의 프로그램 명령어들을 모아 놓은 것 def: 키워드 print_message(): 함수 print는 def보다 공백이 있어야 함. (들여쓰기 필수 !) print_message 함수는 하나의 명령어처럼 사용 가능 print("CS101 is fantastic!") print("Programming is fun!")는 함수 호출 def repeatmessage (): 는 printmessage 함수를 두 번 부름 화면에 총 4줄이 출력 되는 것. 정의를 하는 것과 함수를 실행하는 것은 서로 다른 동작 정의: 설계도를 만드는 것 함수를 실행: 설계도를 기반으로 하는 활동

모두를 위한 컴퓨터 과학(CS50 2019) <3>
사용자 정의 함수 우리가 지금까지 사용하던 'getint','getstring' 등의 함수는 우리가 직접 구현할 필요가 없었던 이유는 과거의 어떤 사람들이 모두 구현해두었기 때문이다. 함수의 이름을 cough라고 정하고 cough 함수를 만들어 본다면, 먼저 void를 입력하고 원하는 함수명(cough)을 적은 뒤 괄호 안에 void를 적어준다. 그리고 printf로 cough를 출력하는 코드를 작성한다. 이제 int main(void)의 안에 cough(함수명)를 사용하면 우리가 정의해둔 대로 cough가 출력된다. 중요한 main 함수가 아래에 있는 것보다 위에 있는것이 보기 좋지만, main 함수를 위로 올리고 cough 함수를 내린다면 오류가 발생한다. 이 것을 해결하려면 다시 cough함수를 위로 올려야한다. 하지만 함수를 1개가 아닌 여러개를 만들수록 main 함수는 아래로 내려가기 때문에 `void cough(void)

모두를 위한 컴퓨터 과학(CS50 2019) <2>
C언어 C기초 C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어이다. 하나하나 설명하자면 ![CloudScape] (https://cphinf.pstatic.net/mooc/20200608293/1591590786465biqfWPNG/mceclip1.png) #include 는 “stdio.h”라는 이름의 파일을 찾아서 “printf” 함수에 접근할 수 있도록 해준다. int main(void) 는 '시작한다'의 의미를 가지고 있다고 보면 된다. 앞으로 우리가 작성할 코드 모두는 이 int main(void) { }의 중괄호 사이에 작성하게 될 것 이다. printf(“hello, world\n”) 은 스크래치의 “‘hello, world’라고 말하기” 블록과 같은 역할을 한다. 글자나 단어, 문장을 적을 때는 언제나 텍스트에 " " 쌍따옴표로 감싸야 한다. 그리고 우리가 일상에서 문장의 끝에 마침표(.)를 붙이는 것 처럼 C

모두를 위한 컴퓨터 과학(CS50 2019) <1>
컴퓨팅 사고 2진법 컴퓨터 과학은 문제해결에 대한 학문. 문제 해결은 입력(Input)을 전달받아 출력(Output)을 만들어내는 과정. 이러한 입력과 출력을 표현하기 위해선 2진법을 사용한다. 2진법에서 100 은 2²x1 + 2¹x0 + 1x0 = 4 이다. 컴퓨터에는 굉장히 많은 스위치(트랜지스터)가 있고 이를 통해 0과1 / on off /yes no 만으로 영상, 사진, 소리 등을 저장하고 출력한다. 이러한 0과 1의 단위는 비트(bit), 8개가 모여 바이트(byte), 킬로바이트, 메가바이트, 기가바이트... 수없이 확장 되어 가고 있다. 정보의 표현 컴퓨터는 스위치를 on/off 하면서 숫자를 표현함. 그리고 문자를 표현하기위해 문자를 숫자로 정한 약속이 있는데 그중 하나가 아스키코드(ASCII)이다. 
1.1 사이킷런과 머신러닝
Supervised Learning(지도 학습) : 정답(Label)이 존재. 수치를 예측하는 것이면 Regression, 분류의 문제는 Classification 참고 Classification -> https://scikit-learn.org/stable/supervised_learning.html#supervised-learning Regression -> https://scikit-learn.org/stable/supervised_learning.html#supervised-learning Unsupervised Learning(비지도 학습) : 정답(Label)이 없음. 비슷한 것들끼리 그룹화(Clustering)하거나 차원 축소(Dimension Reduction)을 주로 함. 참고 Clustering -> https://scikit-learn.org/stable/modules/clustering.html#clustering
[Objective-C] edwith-1003
MVC & Universal Application MVC Overview MVC 모델은 코코아 터치 프레임워크의 근간을 이루는 디자인 패턴 View : 화면에 보이는 모든 것 Model : logic, Data Controller : 징검다리 역할! (view, model 사이가 물리적인 공간으로 분리가 된다.) Universal Application : iphone & ipad 둘 다 지원 App Delegate 가 Controller 역할 느낌, UIWindow가 View 느낌, CandleModel(Model) 이런식으로 구성. Example Light the candle to MVC with ARC CandleModel.h CandleModel.m 클래스 인스턴스를 생성하는 방법 팩토리 메소드를 이용해서 생성하거나 alloc이라고 하는 클래스 메소드를 이용해서 메모리에 인스턴스 자체를 만들
[Objective-C] edwith-1002
Objective-C를 공부하기 전에 edwith에서 설명해준 영상을 보고 정리했습니다. 2. 최소한의 개념 2.1 오브젝티브-C, OOP를 위한 언어 2.1.1 역사 C 기반 문법을 확장한 것 smalltalk에 뿌리를 두고있고 java와 형제 지간 C, C++과 혼용 가능 아이폰에서는 가비지 컬렉션 지원 안함 2.1.2 클래스와 인스턴스 클래스는 설계도와 같다. 인스턴스는 설계도를 따라 만든 실제 건물이다. 메모리에 자리잡은 오브젝트를 인스턴스(실체) 오브젝트라고 한다. NSString class의 nameString 인스턴스 만들기 NSString *nameString = [[NSString alloc] initWithString:@”Winter”]; 2.1.3 메시징 C방식 : DrawGradient(myView,aquaGradient, 0.0, 1.0, YES); Obj-C 방
[Objective-C] edwith-1001
Objective-C를 공부하기 전에 edwith에서 설명해준 영상을 보고 정리했습니다. 1001 iOS 앱 개발 기초 앱 구조 이해 앱이 처음 시작하면 main 함수가 처음 실행 된다. 👉 그럼 main.m 안에 있는 UIApplicationMain 이라는 api가 실행 된다. 이 친구가 하는 역할은 기본적인 설정을 확인한다. 내가 시작점이 어디인지 그 엔트리 포인트를 확인한다. 👉 그러면 main.storyboard 를 찾는다. 그건 plist 안에 있음. UIApplicationMain는 plist를 참조한다. plist 는 main 스토리보드를 알려준다. 👉 마지막에 NSStringFromClass([AppDelegate class])가 있는데 AppDelegate 클래스를 만드는거다. (시스템에서 실행해서 시스템에서 처리한다는 소리임). 여기를 nil 을 넣어주면 앱에 아무것도 안뜨고 까만 화면이다. MainWindow.xib (storyboa
[부스트코스] 웹 프로그래밍 프로젝트 C 메인페이지 DONE
프로젝트C-1.예약:메인:BE & FE 완성했다. 기간은 8월 20일부터 9월 3일까지 15일정도 소요됐던거 같다. Swagger를 처음 사용해봐서 조금 헤맨것과 프론트엔드에서 AJAX HTML TEMPLATING으로 원하는 대로 배치하는 것이 어려워서 구글링을 많이 했다. 일단 완성시켰으나 너무 빈번하게 AJAX를 사용하여 서버 부하가 심할 것 같아 해당 카테고리의 데이터를 일단 전부 받아와서 나눠서 보여주는 방식이 더 나을 것이라고 생각된다.