Archive — Archive

전체 글

Academic
Computer Science/Git - GitHub

[Git] 로컬저장소에서의 Git

로컬저장소에서의 Git - 로컬 환경(홀로 작업하는)에서의 Git 사용법과 개념이다. * 전체 Git 명령어 (URL) Commit ⓥ 저지르다, 위임하다 - 프로젝트에서 의미를 갖는 최소 단위이다. - "새로고침"과 유사한 기능이며, 업데이트를 확정짓는 기능이다. * 커밋을 하기에 적절한 시기 1. 일정 시간이 지난 후 2. 함수의 생성 및 수정사항이 생겼을 때 관련 명령어 git commit : 커밋을 시도, 커밋 메세지를 작성하는 화면이 나오게 된다. - 별다른 설정을 하지 않았다면, vim으로 커밋 메세지를 작성하게 된다. - 해당 커밋을 설명하는 메세지를 작성하는 것이 일반적이다. git commit -a : 변경된 저장소 파일 모두를 커밋하는 명령어이다. - "-a" 옵션은 "all"을 의미한..

Computer Science/Git - GitHub

[Git] Windows 상에서의 Git 설치법

※ 이 포스트는 GitHub 가 아닌 Git 의 설치법이다. GitHub를 설치하고자 하시면 여기로 가자. 가장 강력한 VCS 중 하나인 Git를 Windows에 설치하는 방법에 관한 포스트로, Git은 Linux OS 기반에서 사용하도록 만들어진 프로그램이라 Linux에 Git을 설치하는 과정에 비하면 Windows 에 설치하는 과정은 약간 복잡한 편이다. 1. Git 공식 홈페이지 접속 https://git-scm.com/ 들어가자. 2. Git Reference 읽기 https://git-scm.com/book/ko/v2 3. Git 다운로드 모니터 안쪽 그림에 현재 접속 중인 컴퓨터의 OS를 감지해서 적합한 버전을 추천해준다. 만일 본인이 사용하는 OS와 다른 버전이 다운로드 되려한다면, 노란 박..

Computer Science/Data Structures & Algorithms

[Algorithms] 분할정복 (Divide and Conquer)

분할정복 Divide and Conquer - 각 재귀 호출 레벨 위에서 세 가지 단계를 거치면서 재귀적으로 문제를 풀이함 1. 분할 - Divide - 현재의 문제와 동일하되 입력의 크기가 더 작은 다수의 부분 문제로 분할한다. 2. 정복 - Conquer - 부분 문제를 재귀적으로 풀어서 정복한다. - 부분 문제의 크기가 충분히 작으면 직접적인 방법으로 푼다. 3. 결합 - Combine - 부분 문제의 해를 결합해 원래 문제의 해가 되도록 만든다. * 부분 문제가 재귀적으로 풀어야 할 만큼 충분히 클 때, 재귀 대상(Recursive case) 라 한다. * 부분 문제가 충분히 작아져 더 이상 재귀 호출을 할 수 없을 때, "재귀가 바닥을 쳤다(Bottoms out)" 라 표현하거나, "베이스 케이..

Mathematics/Discrete Mathematics

[Discrete Mathematics] 점근적 분석법 - 마스터정리

Asymptotic Analysis Method (점근적 분석법) - 점화식* 의 점근적 복잡도를 구하는 방법 - 대표적으로 세 가지 방법이 존재 (반복 대치, 추정 후 증명, 마스터 정리) * 점화식 (Recurrence) : 어떤 함수를 자신과 똑같은 함수를 이용해 표현한 식 ex) 피보나치 수열 : \(F(n) = F(n-1) + F(n-2)\) ex) 팩토리얼의 함수적 표현 : \(f(n) = n * f(n-1)\) 마스터 정리 Master Theorem - 특정 형태의 재귀식에서 바로 결과를 도출하는 방법 - 입력의 크기가 \(n\)인 문제를 풀기 위해 입력의 크기가 \({b \over n}\) 인 문제를 풀고, 나머지 \(f(n)\) 의 오버헤드가 필요한 알고리즘의 점화식을 풀 수 있음 \(T..

Mathematics/Discrete Mathematics

[Discrete Mathematics] 점근적 분석법 - 추정 후 증명

Asymptotic Analysis Method (점근적 분석법) - 점화식* 의 점근적 복잡도를 구하는 방법 - 대표적으로 세 가지 방법이 존재 (반복 대치, 추정 후 증명, 마스터 정리) * 점화식 (Recurrence) : 어떤 함수를 자신과 똑같은 함수를 이용해 표현한 식 ex) 피보나치 수열 : \(F(n) = F(n-1) + F(n-2)\) ex) 팩토리얼의 함수적 표현 : \(f(n) = n * f(n-1)\) 추정 후 증명 Substitution Method - 점화식의 모양을 보고 점근적 복잡도를 추정한 후, 귀납적으로 증명하여 점근적 시간복잡도(Time Complexity)를 구하는 방법 ex) 점화식 \(T(n) ≤ 2T({n \over 2}) + n\) 의 추정 후 증명법을 통한 풀..

Mathematics/Discrete Mathematics

[Discrete Mathematics] Asymptotic Analysis Method | 점근적 분석법 - 반복대치

Asymptotic Analysis Method (점근적 분석법) - 점화식* 의 점근적 복잡도를 구하는 방법 - 대표적으로 세 가지 방법이 존재 (반복 대치, 추정 후 증명, 마스터 정리) * 점화식 (Recurrence) : 어떤 함수를 자신과 똑같은 함수를 이용해 표현한 식 ex) 피보나치 수열 : \(F(n) = F(n-1) + F(n-2)\) ex) 팩토리얼의 함수적 표현 : \(F(n) = n * F(n-1)\) 반복 대치 - 점화식을 반복하여 대치해가면서 점화식을 전체적으로 나열시킨 후에 점근적 시간복잡도(Time Complexity)를 구하는 방법 ex) 팩토리얼값(n!)을 구하는 알고리즘의 시간복잡도 분석과정 Factorial(n){ if (n = 1) return 1; // 1 else..

Computer Science/Data Structures & Algorithms

[Algorithms] Asymptotic Notation | 점근적 표기법

Asymptotic Notation 점근적 표기법 - 변수의 크기가 충분히 큰 경우에 변수가 커짐에 따라 함수가 증가하는 비율을 표현하는 방법 * Asymptotic Analysis (점근적 분석) : 입력이 충분히 큰 경우에 대한 분석 ex) 점근적 표기법의 예시 ※ 표기법 상 유의사항 1. 점근적 표기법에서 " = "(Equal) 은 " ∈ "(lunate epsilon) 을 의미함 따라서 교환법칙이 성립하지 않음! ex) \(n^2 + 3 = \Theta(n^2) \nLeftrightarrow \Theta(n^2) = n^2 + 3\) 2. s.t. 는 such that 을 의미함 ex) \(A s.t. B \iff B\)를 만족하는 \(A\) Theta Notation - \(\Theta\) - ..

Computer Science/Software Engineering

[Software Engineering] 객체 지향 설계

Object Oriented Design 객체 지향 설계 - Object 가 기본적인 Building Block (구성 단위) 이 되는 프로그램 설계법 구 분 Structured Program Design Object Oriented Design 공통점 Divide & Conquer * 기법 사용 차이점 (과제분할방법의 차이) 알고리즘적 분해 (함수적 분해) - S/W 를 Process 의 Step (=Module) 으로 분해 객체 지향적 분해 - S/W 를 Object 로 분해한 후, 기능적 분해 진행 * Divide & Conquer (분할-정복) - 복잡한 문제를 여러 단순한 부분 작업으로분할하여 개별적으로 해결하는 방법 Language 1. Object Oriented Language (객체 지향..

lww7438
Archive