From c4a7a1f22095412791040713472e5eced99e30e9 Mon Sep 17 00:00:00 2001 From: subin914 <48706954+subin914@users.noreply.github.com> Date: Thu, 14 Jul 2022 09:28:21 +0900 Subject: [PATCH] =?UTF-8?q?week01=5F=EB=AC=B8=EC=88=98=EB=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...56\341\204\207\341\205\265\341\206\253.md" | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 "week01/week01_\341\204\206\341\205\256\341\206\253\341\204\211\341\205\256\341\204\207\341\205\265\341\206\253.md" diff --git "a/week01/week01_\341\204\206\341\205\256\341\206\253\341\204\211\341\205\256\341\204\207\341\205\265\341\206\253.md" "b/week01/week01_\341\204\206\341\205\256\341\206\253\341\204\211\341\205\256\341\204\207\341\205\265\341\206\253.md" new file mode 100644 index 0000000..76e9912 --- /dev/null +++ "b/week01/week01_\341\204\206\341\205\256\341\206\253\341\204\211\341\205\256\341\204\207\341\205\265\341\206\253.md" @@ -0,0 +1,81 @@ +# week01_문수빈 + +--- + +## 2장 - 복잡도와 빅오 표기법 + +- 복잡도는 배우는 이유 + + 구현하려는 알고리즘이 실행되는 대략적인 시간을 알 수 있음 + +- 빅오 표기법 + + 알고리즘 A의 계산 시간 T(N)이 대략 P(N)에 비례하면 T(N) = O(P(N))이라 표현하고, 알고리즘 A의 복잡도는 O(P(N)이다. + + - 연산 횟수: 3N+2 ⇒ N이 무한대로 갈 때 대략 N에 비례함 +- 복잡도를 구하는 예 + - 짝수 나열: for문 반복 횟수 N/2 ⇒ O(N) *계수 무시* + - 최근접 점쌍 문제: O(N^2) +- 복잡도 사용법 + - $O(logN)$ 알고리즘은 N이 아무리 늘어나도 계산 횟수는 거의 늘어나지 않는다. + - 지수 시간이 걸리는 알고리즘: $O(N!)$, $O(2^N)$ + + 지수시간이 걸리는 알고리즘은 N이 증가함에 따라 계산시간이 급격히 늘어남 + + - 다항시간이 걸리는 알고리즘: d > 0이 존재하고 복잡도가 $N^d$ 상수배로 상한이 제한되는 알고리즘 + - $O(NlogN), O(N\sqrt{N})$ 같은 복잡도는 모두 $N^2$ 라는 상한이 정해지기 때문에 다항 시간이 걸리는 알고리즘이다. +- 최악 시간 복잡도와 평균 시간 복잡도 + - 대부분 복잡도는 최악 시간 복잡도를 의미함 + +## 3장 - 설계 기법(1): 전체 탐색 + +- 전체 탐색(1): 선형 탐색법 + - 요소를 하나하나 순서대로 조사하는 탐색법 + - 응용 + - 조건을 만족하는 지 판정 뿐만 아니라 위치를 알고 싶을 때도 사용함 + - 최솟값 구하기 +- 전체 탐색(2): 쌍 전체 탐색 + - 주어진 데이터 안에서 최적의 쌍을 탐색하는 문제 + - 주어진 두 쌍의 데이터에서 각각의 요소를 추출하는 방법을 최적화하는 문제 + - 이중 for문을 사용하여 풀 수 있음. + + ex) 쌍의 합이 K 이상인 값 중에서 최소인 값 + +- 전체 탐색(3): 조합 전체 탐색 + - 모든 조합을 조사하는 방식 + - N개의 데이터가 있으면 부분 집합 $2^N$개를 탐색할 수 있음 + + ex) 부분합 문제를 비트 표현식으로 풀기 + + +--- + +## 코딩완전분석 199p 문제 + +**6.1 무거운 알약** + +알약이 들어있는 병 20개를 각각 1개부터 20개까지 꺼내어 무게를 잰다. + +측정된 무게에서 첫번째 소수점 자리 개수만큼 꺼낸 병이 무거운 알약이 들어있는 병이다. + +ex) 측정된 무게가 xx.5 ⇒ 5개를 꺼낸 병이 무거운 알약이 들어있는 병 + +측정된 무게가 xx.18 ⇒ 18개를 꺼낸 병이 무거운 알약이 들어있는 병 + +**6.2 농구** + +게임 1번에서 슛이 들어갈 확률: p + +게임 2번에서 슛이 들어갈 확률: (슛을 넣는 순서의 경우의 수 x 3번 중 2번 슛을 넣는 경우의 수 x 3번 중 1번 슛을 못 넣는 경우의 수) + 3번 모두 슛을 넣을 확률 = $_3C_2$ x $p^2$ x $(1-p)$ + $p^3$ + +1번 게임에서 슛이 들어갈 확률이 2번 게임에서 슛이 들어갈 확률(i)보다 크다면 1번 게임을, 반대의 상황(ii)이라면 2번 게임을 선택한다. + +i) $p$ > $_3C_2$ x $p^2$ x $(1-p)$+ $p^3$ + +→ $(2p-1)(p-1) > 0$ + +p는 확률이므로 1보다 작다. + +→ 2p -1 < 0 + +따라서, p < 0.5 일 때 게임 1을 선택하고, 0.5 < p 일 때 게임 2번을 선택한다. \ No newline at end of file