From 52426271133ac1f0bb8fd2c4d2166d7006966d3b Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Wed, 14 Apr 2021 13:23:38 +0900
Subject: [PATCH 01/38] Update README.md
---
README.md | 23 ++++-------------------
1 file changed, 4 insertions(+), 19 deletions(-)
diff --git a/README.md b/README.md
index 811350f..f972bf0 100644
--- a/README.md
+++ b/README.md
@@ -5,28 +5,13 @@
✨ 목표는 매일, 최소 30분을 투자해서 CS 지식을 익히고 정리하는 것입니다.
-### 1. 본인 깃허브 아이디로 브랜치 생성
-- 참고 : [Github으로 협업하기](https://victorydntmd.tistory.com/91)
-- 이 레파지토리를 git clone 합니다.
-- **`git checkout -b [본인 깃허브 아이디]` 로 브랜치를 생성하고 이동합니다.**
-- git push --set-upstream origin [본인 깃허브 아이디] 로 깃허브에 브랜치를 push 해줍니다.
-
-
-깃허브 이 부분에서 브랜치를 쉽게 만들 수도 있습니다.
-
-
-
-### 2. 커밋 & 푸시
+### 깃허브 잔디 채우면서 스터디하기
방법 1 :
-- 이 깃허브 페이지의 본인 브랜치에서 그날 공부한 내용을 readme 파일에 정리하고 저장 -> 커밋 반영
-- 수업을 들을 때마다, 공부한 내용을 정리해서 폴더 안의 파일에 업데이트 해주세요.
-
-방법 2 : 로컬에서 작업
-- 로컬에서 각 폴더 안에 공부한 파일을 생성, 저장 후 `커밋`
-- `git push origin [본인 깃허브 아이디]` -> 커밋 반영
+- 이 깃허브 폴더에 개인별로 .md 파일을 생성, 그날 공부한 내용을 정리하고 저장
-참조 : [브랜치를 하나 생성하고, push 하는 법](https://ychae-leah.tistory.com/59)
+방법 2 :
+- Issues에서 그날 공부한 내용을 정리
## 알고리즘 문제를 푸시는 경우
From 40f54c67fda14927ebf36bf6bc259688ad06f584 Mon Sep 17 00:00:00 2001
From: Gi Lim Kim <53022297+kimx1201@users.noreply.github.com>
Date: Wed, 14 Apr 2021 20:27:56 +0900
Subject: [PATCH 02/38] =?UTF-8?q?Create=20=EC=BB=B4=ED=93=A8=ED=84=B0=20?=
=?UTF-8?q?=EA=B3=BC=ED=95=99.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...64\355\223\250\355\204\260 \352\263\274\355\225\231.md" | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 "1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/\354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
diff --git "a/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/\354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md" "b/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/\354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
new file mode 100644
index 0000000..2b9a038
--- /dev/null
+++ "b/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/\354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
@@ -0,0 +1,7 @@
+컴퓨터 과학 - 문제 해결에 대한 학문, 입력을 전달받아 출력을 만들어내는 과정이다.
+
+2진법 - 컴퓨터는 오로지 0과 1로만 데이터를 표현한다. 0과 1로 표현하는 걸 이진법이라고 한다. 이진법에서 하나의 자릿수를 표현하는 단위를 비트라고 한다.
+
+비트 - 비트는 이진 숫자라는 뜻을 가진 “binary digit”의 줄임말이며, 0과 1, 두 가지 값만 가질 수 있는 측정 단위다.
+
+바이트 - 8개의 비트가 모여 만들어진 것.
From c0285b66dbe7a12a6860bd08319caedac85ee651 Mon Sep 17 00:00:00 2001
From: Gi Lim Kim <53022297+kimx1201@users.noreply.github.com>
Date: Thu, 15 Apr 2021 11:30:35 +0900
Subject: [PATCH 03/38] =?UTF-8?q?Update=20and=20rename=20=EC=BB=B4?=
=?UTF-8?q?=ED=93=A8=ED=84=B0=20=EA=B3=BC=ED=95=99.md=20to=20[=EA=B9=80?=
=?UTF-8?q?=EA=B8=B0=EB=A6=BC]=20=EC=BB=B4=ED=93=A8=ED=84=B0=20=EA=B3=BC?=
=?UTF-8?q?=ED=95=99.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...4\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md" | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename "1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/\354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md" => "1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/[\352\271\200\352\270\260\353\246\274] \354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md" (100%)
diff --git "a/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/\354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md" "b/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/[\352\271\200\352\270\260\353\246\274] \354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
similarity index 100%
rename from "1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/\354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
rename to "1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/[\352\271\200\352\270\260\353\246\274] \354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
From 289b572ab0af299b55acd072aa695cbd77be8051 Mon Sep 17 00:00:00 2001
From: Gi Lim Kim <53022297+kimx1201@users.noreply.github.com>
Date: Thu, 15 Apr 2021 11:31:07 +0900
Subject: [PATCH 04/38] =?UTF-8?q?Update=20[=EA=B9=80=EA=B8=B0=EB=A6=BC]=20?=
=?UTF-8?q?=EC=BB=B4=ED=93=A8=ED=84=B0=20=EA=B3=BC=ED=95=99.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md" | 2 ++
1 file changed, 2 insertions(+)
diff --git "a/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/[\352\271\200\352\270\260\353\246\274] \354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md" "b/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/[\352\271\200\352\270\260\353\246\274] \354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
index 2b9a038..60e1add 100644
--- "a/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/[\352\271\200\352\270\260\353\246\274] \354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
+++ "b/1-\354\273\264\355\223\250\355\214\205\354\202\254\352\263\240/[\352\271\200\352\270\260\353\246\274] \354\273\264\355\223\250\355\204\260 \352\263\274\355\225\231.md"
@@ -5,3 +5,5 @@
비트 - 비트는 이진 숫자라는 뜻을 가진 “binary digit”의 줄임말이며, 0과 1, 두 가지 값만 가질 수 있는 측정 단위다.
바이트 - 8개의 비트가 모여 만들어진 것.
+
+업데이트가 안 되는 것인가..?
From d5e676197c455efaf84ada84597aadc507aebdc0 Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:10:49 +0900
Subject: [PATCH 05/38] Update README.md
---
README.md | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index f972bf0..d276107 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,8 @@
## 알고리즘 문제를 푸시는 경우
-- 자신의 알고리즘 소스를 저장할 폴더를 만들어주세요
-- 매주 폴더를 하나 만들어서 그 안에 해결된 알고리즘 소스를 올려주세요.
-- 본인의 브랜치에 커밋을 해 주세요.
+- 알고리즘 문제풀이 하위 폴더에 자신의 알고리즘 소스를 저장할 폴더를 만들어 주세요.
+- 문제를 푸시며, 해결된 알고리즘 문제 풀이를 올려 주세요.
## 알고리즘 문제 풀이 사이트 추천 (자유롭게 업데이트 해 주세요)
From ae3509ce1de5f05bb16993ccaa464a80cb7e8fd8 Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:12:03 +0900
Subject: [PATCH 06/38] Update README.md
---
README.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index d276107..185c465 100644
--- a/README.md
+++ b/README.md
@@ -7,11 +7,9 @@
### 깃허브 잔디 채우면서 스터디하기
-방법 1 :
- 이 깃허브 폴더에 개인별로 .md 파일을 생성, 그날 공부한 내용을 정리하고 저장
-
-방법 2 :
-- Issues에서 그날 공부한 내용을 정리
+ ex) 1-컴퓨터 구조/[김코딩]컴퓨터구조.md
+ 마크다운 파일 생성 시 잔디가 한 번 심어지며, 수정할 때마다 잔디가 심어집니다. 각 챕터마다 한 파일에 꾸준히 정리하시면 됩니다!
## 알고리즘 문제를 푸시는 경우
From 2ca976357f226a348d8830b52bcadfab10c3f970 Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:12:31 +0900
Subject: [PATCH 07/38] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 185c465..06b00f7 100644
--- a/README.md
+++ b/README.md
@@ -8,8 +8,8 @@
### 깃허브 잔디 채우면서 스터디하기
- 이 깃허브 폴더에 개인별로 .md 파일을 생성, 그날 공부한 내용을 정리하고 저장
- ex) 1-컴퓨터 구조/[김코딩]컴퓨터구조.md
- 마크다운 파일 생성 시 잔디가 한 번 심어지며, 수정할 때마다 잔디가 심어집니다. 각 챕터마다 한 파일에 꾸준히 정리하시면 됩니다!
+- ex) `1-컴퓨터 구조/[김코딩]컴퓨터구조.md`
+- 마크다운 파일 생성 시 잔디가 한 번 심어지며, 수정할 때마다 잔디가 심어집니다. 각 챕터마다 한 파일에 꾸준히 정리하시면 됩니다!
## 알고리즘 문제를 푸시는 경우
From 375aadacc5a14eb65cfcbf0d2f4288da52bf68be Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:14:48 +0900
Subject: [PATCH 08/38] Update README.md
---
README.md | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 06b00f7..b536d49 100644
--- a/README.md
+++ b/README.md
@@ -5,12 +5,16 @@
✨ 목표는 매일, 최소 30분을 투자해서 CS 지식을 익히고 정리하는 것입니다.
-### 깃허브 잔디 채우면서 스터디하기
+## 깃허브 잔디 채우면서 스터디하기
- 이 깃허브 폴더에 개인별로 .md 파일을 생성, 그날 공부한 내용을 정리하고 저장
- ex) `1-컴퓨터 구조/[김코딩]컴퓨터구조.md`
- 마크다운 파일 생성 시 잔디가 한 번 심어지며, 수정할 때마다 잔디가 심어집니다. 각 챕터마다 한 파일에 꾸준히 정리하시면 됩니다!
+## 미션 (선택사항)
+- 네이버 부스트코스 코칭스터디의 미션 파일이 각 폴더별로 들어있습니다.
+- 심화 학습을 하고자 하시는 경우, 해당 미션을 보고 같이 해결해주시면 됩니다! 🤟
+
## 알고리즘 문제를 푸시는 경우
From d90c7e060e648abdef0b9ee7841ee47df811a8a7 Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:16:02 +0900
Subject: [PATCH 09/38] =?UTF-8?q?Create=20=EB=AF=B8=EC=85=98.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../\353\257\270\354\205\230.md" | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 "4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
diff --git "a/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md" "b/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
new file mode 100644
index 0000000..7350dc5
--- /dev/null
+++ "b/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
@@ -0,0 +1,22 @@
+✔︎ 샘플미션. 채점 프로그램을 만들어보자!
+
+
+
+1. 미션 제목
+버블정렬 프로그램 작성
+
+
+
+
+
+2. 지시문
+0에서 9사이의 숫자 5개를 입력으로 받아 버블정렬을 이용하여 숫자를 오름차순으로 정렬하는 프로그램을 작성해봅시다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 안에서 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다.
+
+예)
+입력값: 32415 -> 출력값: 12345
+입력값: 12791 -> 출력값: 11279
+
+
+
+3. 핵심 개념
+#버블정렬
From 98bd7ee3be0173860ee14721266947d97134a6ab Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:18:34 +0900
Subject: [PATCH 10/38] =?UTF-8?q?Update=20=EB=AF=B8=EC=85=98.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../\353\257\270\354\205\230.md" | 236 +++++++++++++++++-
1 file changed, 235 insertions(+), 1 deletion(-)
diff --git "a/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md" "b/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
index 7350dc5..f83c911 100644
--- "a/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
+++ "b/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
@@ -1,5 +1,5 @@
✔︎ 샘플미션. 채점 프로그램을 만들어보자!
-
+-미션을 수행하시는데 도움이 될 수 있게 미션샘플을 답지와 함께 제공해드립니다. 미션샘플은 제출용이 아닌 아래의 미션을 풀기위해 참고하기 위한 미션입니다.
1. 미션 제목
@@ -20,3 +20,237 @@
3. 핵심 개념
#버블정렬
+
+🔔 답안
+`
+#include
+
+int main(void) {
+ int number[5] = {1, 2, 7, 9, 1};
+ int temp;
+ for (int i=0; i < 5; i++)
+ {
+ for (int j=0; j < 5 - i - 1; j++ )
+ {
+ if (number[j] > number[j+1])
+ {
+ temp = number[j];
+ number[j] = number[j+1];
+ number[j+1] = temp;
+ }
+ }
+ }
+
+ for (int i=0; i < 5; i++)
+ {
+ printf("%d", number[i]);
+ }
+ return 0;
+}
+`
+
+✔︎ 미션 1.
+
+
+1. 미션 제목
+숫자 애너그램 찾기
+
+
+
+
+
+2. 지시문
+‘애너그램’이란 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말합니다. 예를 들면 영어의 ‘tea’와 ‘eat’과 같이, 각 단어를 구성하는 알파벳의 구성은 같지만 뜻은 다른 두 단어를 말합니다. 우리말에는 ‘문전박대’와 ‘대박전문’과 같은 예를 들 수 있습니다. 우리는 문자 대신 숫자를 이용해서 애너그램을 찾는 프로그램을 만들어봅시다. 5자리의 숫자 1쌍이 입력으로 주어지며 애너그램일 경우에는 “True”를 아닐 경우에는 “False”를 출력하도록 합시다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다.
+
+
+예)
+입력값: 12345, 54321 -> 출력값: True
+입력값: 14258, 25431 -> 출력값: False
+입력값: 11132, 21131 -> 출력값: True
+
+
+3. 핵심 개념
+#애너그램 #정렬알고리즘
+
+
+
+
+
+
+
+✔︎ 미션 2.
+
+
+1. 미션 제목
+친구들과 최단거리에 있는 집 구하기
+
+
+
+
+
+2. 지시문
+David의 친구들은 한 거리에 모두 모여살고 있습니다. David은 이번에 친구들이 살고 있는 거리로 이사를 가기로 했는데, 친구들의 집에서 거리가 가장 가까운 집을 구해서 그곳으로 이사를 하고 싶습니다. 모두 같은 거리에 살고 있으므로 아래 그림과 같이 친구들의 집 위치를 수직선 상에 표현할 수 있고, 그 때 집은 항상 정수점 위에만 있다고 가정합니다.
+
+
+
+이 때, David이 어느 위치에 있는 집으로 이사를 가야 모든 친구들의 집까지의 거리의 합이 최소가 될 수 있는지 생각해보고 이를 출력하는 프로그램을 작성해봅시다. 그리고 이 때 이 프로그램의 시간복잡도(Big O)가 얼마나 되는지 얘기해봅시다. 어떻게 하면 시간복잡도를 최소화할 수 있을지도 같이 생각해봅시다. 집이 있을 수 있는 위치는 한자리 정수로만 구성되며, 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다.
+
+예)
+입력값: 12345 -> 출력값: 3
+입력값: 2224 -> 출력값: 2
+* 2224의 경우 2에 3명이 같이 사는 것으로 보실 수 있지만 문제상 같은 위치에 여러명이 살 수 있다는 가정으로 풀어주세요^^
+
+
+
+
+3. 핵심 개념
+#거리의합이최소 #중앙값 #평균값
+
+
+
+시간 복잡도 : 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킵니다.
+가장 간단히 중고등학교때 배운 고차함수만을 생각한다면 제일 높은 차수를 가리킨다고 생각하셔도 됩니다.
+y=x^3+1의 시간 복잡도는 O(x^3)이 되며 y=x+5의 시간 복잡도는 O(x)가 됩니다.
+시간 복잡도는 입력 함수 값의 변화가 결과 시간에 얼마나 큰 폭으로 영향을 미치는 지를
+직관적으로 파악하기 위해 사용합니다.
+
+
+
+* 본 문제의 경우 문제를 푸는데 도움이 되는 힌트가 있습니다. 알고리즘의 경우 방법을 직접 고민해보고 찾는 것이 중요합니다. 때문에 고민을 하시다가 도저히 풀 수가 없을때 아래의 힌트를 참고해주시길 바랍니다.
+
+
+-> ' ' 사이를 마우스로 블록을 하면 힌트가 나옵니다.
+
+ '평균값과 중앙값 중에 거리의 합을 최소로 만드는 값은 어떤 것인지 먼저 생각해봅시다.'
+
+
+
+
+
+
+
+✔︎ 미션 3(난이도 상).
+
+
+1. 미션 제목
+최단 시간에 다리건너기
+
+
+
+
+
+2. 지시문
+N명의 사람들로 구성된 한 그룹이 밤중에 다리를 건너려고 합니다. 한 번에 최대 두 명 까지만 다리를 건널 수 있으며 다리 위를 지나가는 사람들은 반드시 손전등을 가지고 가야 합니다. n명의 사람들한테는 손전등이 한 개밖에 없기 때문에 남아 있는 사람들이 다리를 건너려면 어떤 식으로든 손전등을 가지고 다시 다리를 건너지 않은 사람들이 있는 곳으로 돌아가는 일을 해야합니다. 사람마다 다리를 건너는 속도가 다른데, 그룹의 속도는 가장 느린 구성원의 속도에 따라 결정됩니다. 가장 짧은 시간 안에 n명이 모두 다리를 건널 수 있는 방법과 그 시간을 출력하는 프로그램을 작성해봅시다.
+
+
+입력으로 첫 줄에는 n이 입력되며 그 다음 줄부터 n개의 줄에 걸쳐서 각 사람들이 다리를 건너는 시간이 입력됩니다. 입력은 100명을 넘기지 않습니다.
+
+
+출력은 맨 첫 줄에는 n명의 사람들이 모두 다리를 건너는데 걸리는 총 시간을 출력하고, 그 다음줄부터는 그 과정을 출력하면 됩니다. 이 때 각 줄에는 정수가 하나 또는 두 개가 들어가는데, 이 정수는 어떤 사람들이 다리를 건너가는지를 나타냅니다. 각 사람은 그 사람이 건너가는데 걸리는 시간으로 표시하며, 건너가고 오는 순서대로 출력해야 합니다. 최소 시간을 달성하는 방법이 여러가지가 있을 경우 그 중 아무 방법이나 출력해도 괜찮습니다. 완전한 프로그램을 작성하기 어려운 경우에는 pseudo code를 작성해도 좋습니다. 다만 이 경우에는 최대한 자세히 적어야 합니다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에서 따로 선언하는 것으로 가정합니다.
+
+
+예)
+입력값:
+4
+1
+2
+5
+10
+
+
+출력값:
+17
+1 2
+1
+5 10
+2
+1 2
+
+
+
+3. 핵심 개념
+#정렬알고리즘
+
+
+
+* 본 문제의 경우 문제를 푸는데 도움이 되는 힌트가 있습니다. 알고리즘의 경우 방법을 직접 고민해보고 찾는 것이 중요합니다. 때문에 고민을 하시다가 도저히 풀 수가 없을때 아래의 힌트를 참고해주시길 바랍니다.
+
+
+
+-> ' ' 사이를 마우스로 블록을 하면 힌트가 나옵니다.
+
+ '각 사람들이 다리를 건너는 시간에 따라서 예)에 있는 출력값과 같은 방법으로 다리를 건너는 것이 최선이 아닌 경우도 있습니다. 어떤 경우에 그렇게 되는지, 그리고 그 때는 어떤 방법으로 다리를 건너는 것이 최선인지 생각해봅시다'
+
+
+
+-> 아래 두번째 ' ' 사이에는 결정적인 힌트가 있습니다. 왠만하면 참고하지 말고 풀어보시고 힘들면 확인하세요 :)
+
+
+
+'
+
+다리를 가장 빠르게 건너는 방법은 상황에 따라서 두가지로 나뉘게 됩니다. 이것을 찾아낼 수 있는지가 첫번째 출제 의도입니다. 두가지 방법은 다음과 같습니다
+
+현재 다리를 건너지 않은 사람들 n명이 있을 때, 중에 제일 빠른 사람을 1번, 그 다음 빠른 사람을 2번, 제일 느린 사람을 n번, 그 다음으로 느린 사람을 n-1번이라고 하겠습니다.
+
+첫번째 방법은 다음과 같습니다
+
+1번과 2번이 건너간다 > 1번이 돌아온다 > n-1번과 n번이 건너간다 > 2번이 돌아온다 >(1번과 2번이 건너간다)
+
+총 걸린시간: 2번 + 1번 + n번 + 2번 (+ 2번)
+
+두번째 방법은 다음과 같습니다
+
+1번과 n번이 건너간다 > 1번이 돌아온다 > 1번과 n-1번이 건너간다 > 1번이 돌아온다 > (1번과 2번이 건너간다)
+
+총 걸린시간: n번 + 1번 + n-1번 + 1번 (+ 2번)
+
+
+
+두 경우를 비교해보면 결국 2번의 소요시간 x 2가 1번 소요시간 + n-1번 소요시간보다 더 크냐 작으냐에 의해서 결정되는 것입니다.
+
+그래서 이 경우를 구분해서 두 개로 경우를 나누어 생각할 수 있는지를 보는 것이 첫번째 출제의도입니다.
+
+ 그런데 위 방법에서 괄호로 표시한 부분 이전까지만 수행을 하면, 현재 상태는 n-1번 사람과 n번 사람만 다리를 건너간 상태가 됩니다. n이 4였다면 여기서 괄호 안처럼 1번과 2번이 건너가면 끝나지만, 4보다 큰 경우에는 역시 남아있는 다른 사람들도 건너가야 하기 때문에 다시 맨 처음으로 돌아가서 건너간 2명을 뺀 나머지를 n명이라고 했을 때 똑같이 1번, 2번(둘은 변하지 않음) 그리고 n-1, n번 사람을 놓고 같은 방법으로 두 명을 건너게 하는 방식을 계속 반복하면 그것이 최소 시간에 다리를 건너가는 방법입니다.
+
+
+
+여기서 또 한가지 추가로 생각해야할 것은 사람의 수가 홀수인 경우에는 마지막에 3명만 남게 되는데, 이 때 빠른 순서대로 1번, 2번, 3번이라고 하면 당연히 이 경우는 1번과 3번이 건너간 뒤에 1번이 다시 돌아오고, 1번 2번이 마지막으로 건너가는 방식이 최소시간입니다. 알고리즘을 작성함에 있어서 이렇게 3명만 남는 경우에 대해서 따로 처리를 해주느냐를 보는 것이 두번째 출제 의도입니다. '
+
+
+
+
+
+✔︎ 미션 4 (난이도 상).
+
+
+1. 미션 제목
+가장 큰 낙하거리 찾기
+
+ 
+
+
+
+
+2. 지시문
+상자들이 쌓여있는 방이 있습니다. 방이 오른쪽으로 90도 회전하여 상자들이 중력의 영향을 받아 낙하한다고 할 때, 낙하거리가 가장 큰 상자를 구하여 그 낙하거리를 출력하는 프로그램을 작성해 봅시다. 아래 그림에서 총 26개 상자가 회전 후, 오른쪽 그림과 같은 상태가 됩니다. A상자의 낙하거리가 7로 가장 크므로 7을 출력하면 됩니다. 회전 결과, B 상자의 낙하거리는 6이고, C상자의 낙하거리는 1입니다.
+
+
+
+중력은 회전이 완료된 이후에 적용되며, 상자들은 모두 한쪽 벽면에 붙여진 상태로 쌓여 2차원의 형태를 이루며 벽에서 떨어져서 쌓인 상자는 없습니다. 입력으로는 첫 줄에 각 방의 가로 길이 N(2 ≤ N ≤ 100)과 방의 세로 길이 M(2 ≤ N ≤ 100)이 주어지며, 다음 줄에는 N개의 상자들이 쌓여있는 높이 H(0 ≤ H ≤ M)가 주어집니다. 가장 직관적인 방법은 MxN내의 모든 box에 대해서 낙하거리를 계산한 뒤 정렬 알고리즘을 사용하여 최댓값을 찾으면 되는 문제라고 생각할 수 있습니다. 이 방법은 시간 복잡도(Big O)가 얼마나 될 지 먼저 생각해봅시다. 그리고, 이보다 더 효율적인 방법으로 프로그램을 작성해봅시다. 완전한 프로그램을 작성하는 것이 힘들 경우에는 pseudo code로 작성해도 좋습니다. 다만 이 경우에는 최대한 자세히 적어야 합니다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에서 따로 선언하는 것으로 가정합니다.
+
+
+
+예)
+입력값:
+9 8 // 방의 가로 길이 N, 세로 길이 M
+7 4 2 0 0 6 0 7 0 // 상자들이 쌓여있는 높이
+출력값:
+7 // 가장 큰 낙하거리
+
+
+
+3. 핵심 개념
+# 최대값찾기
+
+
From 0d33047e1d6feb2f9dcaddbe59deb9ecc9a8847c Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:20:09 +0900
Subject: [PATCH 11/38] =?UTF-8?q?Delete=20=EB=AF=B8=EC=85=98.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../\353\257\270\354\205\230.md" | 256 ------------------
1 file changed, 256 deletions(-)
delete mode 100644 "4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
diff --git "a/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md" "b/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
deleted file mode 100644
index f83c911..0000000
--- "a/4-\354\225\214\352\263\240\353\246\254\354\246\230/\353\257\270\354\205\230.md"
+++ /dev/null
@@ -1,256 +0,0 @@
-✔︎ 샘플미션. 채점 프로그램을 만들어보자!
--미션을 수행하시는데 도움이 될 수 있게 미션샘플을 답지와 함께 제공해드립니다. 미션샘플은 제출용이 아닌 아래의 미션을 풀기위해 참고하기 위한 미션입니다.
-
-
-1. 미션 제목
-버블정렬 프로그램 작성
-
-
-
-
-
-2. 지시문
-0에서 9사이의 숫자 5개를 입력으로 받아 버블정렬을 이용하여 숫자를 오름차순으로 정렬하는 프로그램을 작성해봅시다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 안에서 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다.
-
-예)
-입력값: 32415 -> 출력값: 12345
-입력값: 12791 -> 출력값: 11279
-
-
-
-3. 핵심 개념
-#버블정렬
-
-🔔 답안
-`
-#include
-
-int main(void) {
- int number[5] = {1, 2, 7, 9, 1};
- int temp;
- for (int i=0; i < 5; i++)
- {
- for (int j=0; j < 5 - i - 1; j++ )
- {
- if (number[j] > number[j+1])
- {
- temp = number[j];
- number[j] = number[j+1];
- number[j+1] = temp;
- }
- }
- }
-
- for (int i=0; i < 5; i++)
- {
- printf("%d", number[i]);
- }
- return 0;
-}
-`
-
-✔︎ 미션 1.
-
-
-1. 미션 제목
-숫자 애너그램 찾기
-
-
-
-
-
-2. 지시문
-‘애너그램’이란 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말합니다. 예를 들면 영어의 ‘tea’와 ‘eat’과 같이, 각 단어를 구성하는 알파벳의 구성은 같지만 뜻은 다른 두 단어를 말합니다. 우리말에는 ‘문전박대’와 ‘대박전문’과 같은 예를 들 수 있습니다. 우리는 문자 대신 숫자를 이용해서 애너그램을 찾는 프로그램을 만들어봅시다. 5자리의 숫자 1쌍이 입력으로 주어지며 애너그램일 경우에는 “True”를 아닐 경우에는 “False”를 출력하도록 합시다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다.
-
-
-예)
-입력값: 12345, 54321 -> 출력값: True
-입력값: 14258, 25431 -> 출력값: False
-입력값: 11132, 21131 -> 출력값: True
-
-
-3. 핵심 개념
-#애너그램 #정렬알고리즘
-
-
-
-
-
-
-
-✔︎ 미션 2.
-
-
-1. 미션 제목
-친구들과 최단거리에 있는 집 구하기
-
-
-
-
-
-2. 지시문
-David의 친구들은 한 거리에 모두 모여살고 있습니다. David은 이번에 친구들이 살고 있는 거리로 이사를 가기로 했는데, 친구들의 집에서 거리가 가장 가까운 집을 구해서 그곳으로 이사를 하고 싶습니다. 모두 같은 거리에 살고 있으므로 아래 그림과 같이 친구들의 집 위치를 수직선 상에 표현할 수 있고, 그 때 집은 항상 정수점 위에만 있다고 가정합니다.
-
-
-
-이 때, David이 어느 위치에 있는 집으로 이사를 가야 모든 친구들의 집까지의 거리의 합이 최소가 될 수 있는지 생각해보고 이를 출력하는 프로그램을 작성해봅시다. 그리고 이 때 이 프로그램의 시간복잡도(Big O)가 얼마나 되는지 얘기해봅시다. 어떻게 하면 시간복잡도를 최소화할 수 있을지도 같이 생각해봅시다. 집이 있을 수 있는 위치는 한자리 정수로만 구성되며, 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다.
-
-예)
-입력값: 12345 -> 출력값: 3
-입력값: 2224 -> 출력값: 2
-* 2224의 경우 2에 3명이 같이 사는 것으로 보실 수 있지만 문제상 같은 위치에 여러명이 살 수 있다는 가정으로 풀어주세요^^
-
-
-
-
-3. 핵심 개념
-#거리의합이최소 #중앙값 #평균값
-
-
-
-시간 복잡도 : 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킵니다.
-가장 간단히 중고등학교때 배운 고차함수만을 생각한다면 제일 높은 차수를 가리킨다고 생각하셔도 됩니다.
-y=x^3+1의 시간 복잡도는 O(x^3)이 되며 y=x+5의 시간 복잡도는 O(x)가 됩니다.
-시간 복잡도는 입력 함수 값의 변화가 결과 시간에 얼마나 큰 폭으로 영향을 미치는 지를
-직관적으로 파악하기 위해 사용합니다.
-
-
-
-* 본 문제의 경우 문제를 푸는데 도움이 되는 힌트가 있습니다. 알고리즘의 경우 방법을 직접 고민해보고 찾는 것이 중요합니다. 때문에 고민을 하시다가 도저히 풀 수가 없을때 아래의 힌트를 참고해주시길 바랍니다.
-
-
--> ' ' 사이를 마우스로 블록을 하면 힌트가 나옵니다.
-
- '평균값과 중앙값 중에 거리의 합을 최소로 만드는 값은 어떤 것인지 먼저 생각해봅시다.'
-
-
-
-
-
-
-
-✔︎ 미션 3(난이도 상).
-
-
-1. 미션 제목
-최단 시간에 다리건너기
-
-
-
-
-
-2. 지시문
-N명의 사람들로 구성된 한 그룹이 밤중에 다리를 건너려고 합니다. 한 번에 최대 두 명 까지만 다리를 건널 수 있으며 다리 위를 지나가는 사람들은 반드시 손전등을 가지고 가야 합니다. n명의 사람들한테는 손전등이 한 개밖에 없기 때문에 남아 있는 사람들이 다리를 건너려면 어떤 식으로든 손전등을 가지고 다시 다리를 건너지 않은 사람들이 있는 곳으로 돌아가는 일을 해야합니다. 사람마다 다리를 건너는 속도가 다른데, 그룹의 속도는 가장 느린 구성원의 속도에 따라 결정됩니다. 가장 짧은 시간 안에 n명이 모두 다리를 건널 수 있는 방법과 그 시간을 출력하는 프로그램을 작성해봅시다.
-
-
-입력으로 첫 줄에는 n이 입력되며 그 다음 줄부터 n개의 줄에 걸쳐서 각 사람들이 다리를 건너는 시간이 입력됩니다. 입력은 100명을 넘기지 않습니다.
-
-
-출력은 맨 첫 줄에는 n명의 사람들이 모두 다리를 건너는데 걸리는 총 시간을 출력하고, 그 다음줄부터는 그 과정을 출력하면 됩니다. 이 때 각 줄에는 정수가 하나 또는 두 개가 들어가는데, 이 정수는 어떤 사람들이 다리를 건너가는지를 나타냅니다. 각 사람은 그 사람이 건너가는데 걸리는 시간으로 표시하며, 건너가고 오는 순서대로 출력해야 합니다. 최소 시간을 달성하는 방법이 여러가지가 있을 경우 그 중 아무 방법이나 출력해도 괜찮습니다. 완전한 프로그램을 작성하기 어려운 경우에는 pseudo code를 작성해도 좋습니다. 다만 이 경우에는 최대한 자세히 적어야 합니다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에서 따로 선언하는 것으로 가정합니다.
-
-
-예)
-입력값:
-4
-1
-2
-5
-10
-
-
-출력값:
-17
-1 2
-1
-5 10
-2
-1 2
-
-
-
-3. 핵심 개념
-#정렬알고리즘
-
-
-
-* 본 문제의 경우 문제를 푸는데 도움이 되는 힌트가 있습니다. 알고리즘의 경우 방법을 직접 고민해보고 찾는 것이 중요합니다. 때문에 고민을 하시다가 도저히 풀 수가 없을때 아래의 힌트를 참고해주시길 바랍니다.
-
-
-
--> ' ' 사이를 마우스로 블록을 하면 힌트가 나옵니다.
-
- '각 사람들이 다리를 건너는 시간에 따라서 예)에 있는 출력값과 같은 방법으로 다리를 건너는 것이 최선이 아닌 경우도 있습니다. 어떤 경우에 그렇게 되는지, 그리고 그 때는 어떤 방법으로 다리를 건너는 것이 최선인지 생각해봅시다'
-
-
-
--> 아래 두번째 ' ' 사이에는 결정적인 힌트가 있습니다. 왠만하면 참고하지 말고 풀어보시고 힘들면 확인하세요 :)
-
-
-
-'
-
-다리를 가장 빠르게 건너는 방법은 상황에 따라서 두가지로 나뉘게 됩니다. 이것을 찾아낼 수 있는지가 첫번째 출제 의도입니다. 두가지 방법은 다음과 같습니다
-
-현재 다리를 건너지 않은 사람들 n명이 있을 때, 중에 제일 빠른 사람을 1번, 그 다음 빠른 사람을 2번, 제일 느린 사람을 n번, 그 다음으로 느린 사람을 n-1번이라고 하겠습니다.
-
-첫번째 방법은 다음과 같습니다
-
-1번과 2번이 건너간다 > 1번이 돌아온다 > n-1번과 n번이 건너간다 > 2번이 돌아온다 >(1번과 2번이 건너간다)
-
-총 걸린시간: 2번 + 1번 + n번 + 2번 (+ 2번)
-
-두번째 방법은 다음과 같습니다
-
-1번과 n번이 건너간다 > 1번이 돌아온다 > 1번과 n-1번이 건너간다 > 1번이 돌아온다 > (1번과 2번이 건너간다)
-
-총 걸린시간: n번 + 1번 + n-1번 + 1번 (+ 2번)
-
-
-
-두 경우를 비교해보면 결국 2번의 소요시간 x 2가 1번 소요시간 + n-1번 소요시간보다 더 크냐 작으냐에 의해서 결정되는 것입니다.
-
-그래서 이 경우를 구분해서 두 개로 경우를 나누어 생각할 수 있는지를 보는 것이 첫번째 출제의도입니다.
-
- 그런데 위 방법에서 괄호로 표시한 부분 이전까지만 수행을 하면, 현재 상태는 n-1번 사람과 n번 사람만 다리를 건너간 상태가 됩니다. n이 4였다면 여기서 괄호 안처럼 1번과 2번이 건너가면 끝나지만, 4보다 큰 경우에는 역시 남아있는 다른 사람들도 건너가야 하기 때문에 다시 맨 처음으로 돌아가서 건너간 2명을 뺀 나머지를 n명이라고 했을 때 똑같이 1번, 2번(둘은 변하지 않음) 그리고 n-1, n번 사람을 놓고 같은 방법으로 두 명을 건너게 하는 방식을 계속 반복하면 그것이 최소 시간에 다리를 건너가는 방법입니다.
-
-
-
-여기서 또 한가지 추가로 생각해야할 것은 사람의 수가 홀수인 경우에는 마지막에 3명만 남게 되는데, 이 때 빠른 순서대로 1번, 2번, 3번이라고 하면 당연히 이 경우는 1번과 3번이 건너간 뒤에 1번이 다시 돌아오고, 1번 2번이 마지막으로 건너가는 방식이 최소시간입니다. 알고리즘을 작성함에 있어서 이렇게 3명만 남는 경우에 대해서 따로 처리를 해주느냐를 보는 것이 두번째 출제 의도입니다. '
-
-
-
-
-
-✔︎ 미션 4 (난이도 상).
-
-
-1. 미션 제목
-가장 큰 낙하거리 찾기
-
- 
-
-
-
-
-2. 지시문
-상자들이 쌓여있는 방이 있습니다. 방이 오른쪽으로 90도 회전하여 상자들이 중력의 영향을 받아 낙하한다고 할 때, 낙하거리가 가장 큰 상자를 구하여 그 낙하거리를 출력하는 프로그램을 작성해 봅시다. 아래 그림에서 총 26개 상자가 회전 후, 오른쪽 그림과 같은 상태가 됩니다. A상자의 낙하거리가 7로 가장 크므로 7을 출력하면 됩니다. 회전 결과, B 상자의 낙하거리는 6이고, C상자의 낙하거리는 1입니다.
-
-
-
-중력은 회전이 완료된 이후에 적용되며, 상자들은 모두 한쪽 벽면에 붙여진 상태로 쌓여 2차원의 형태를 이루며 벽에서 떨어져서 쌓인 상자는 없습니다. 입력으로는 첫 줄에 각 방의 가로 길이 N(2 ≤ N ≤ 100)과 방의 세로 길이 M(2 ≤ N ≤ 100)이 주어지며, 다음 줄에는 N개의 상자들이 쌓여있는 높이 H(0 ≤ H ≤ M)가 주어집니다. 가장 직관적인 방법은 MxN내의 모든 box에 대해서 낙하거리를 계산한 뒤 정렬 알고리즘을 사용하여 최댓값을 찾으면 되는 문제라고 생각할 수 있습니다. 이 방법은 시간 복잡도(Big O)가 얼마나 될 지 먼저 생각해봅시다. 그리고, 이보다 더 효율적인 방법으로 프로그램을 작성해봅시다. 완전한 프로그램을 작성하는 것이 힘들 경우에는 pseudo code로 작성해도 좋습니다. 다만 이 경우에는 최대한 자세히 적어야 합니다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에서 따로 선언하는 것으로 가정합니다.
-
-
-
-예)
-입력값:
-9 8 // 방의 가로 길이 N, 세로 길이 M
-7 4 2 0 0 6 0 7 0 // 상자들이 쌓여있는 높이
-출력값:
-7 // 가장 큰 낙하거리
-
-
-
-3. 핵심 개념
-# 최대값찾기
-
-
From d38c6a6a697ab436c70ee046f9440c01f2baea16 Mon Sep 17 00:00:00 2001
From: da-head0 <61692777+da-head0@users.noreply.github.com>
Date: Thu, 15 Apr 2021 19:20:30 +0900
Subject: [PATCH 12/38] Add files via upload
---
...4\355\212\270\354\275\224\354\212\244.pdf" | Bin 0 -> 1724193 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 "4-\354\225\214\352\263\240\353\246\254\354\246\230/CS50 \354\275\224\354\271\255\354\212\244\355\204\260\353\224\224 2\352\270\260 _ \360\237\222\216 4\354\243\274\354\260\250 \353\257\270\354\205\230! (2\354\233\224 4\354\235\274 \353\252\251\354\232\224\354\235\274 \354\230\244\355\233\204 6\354\213\234 \353\247\210\352\260\220) _ \353\266\200\354\212\244\355\212\270\354\275\224\354\212\244.pdf"
diff --git "a/4-\354\225\214\352\263\240\353\246\254\354\246\230/CS50 \354\275\224\354\271\255\354\212\244\355\204\260\353\224\224 2\352\270\260 _ \360\237\222\216 4\354\243\274\354\260\250 \353\257\270\354\205\230! (2\354\233\224 4\354\235\274 \353\252\251\354\232\224\354\235\274 \354\230\244\355\233\204 6\354\213\234 \353\247\210\352\260\220) _ \353\266\200\354\212\244\355\212\270\354\275\224\354\212\244.pdf" "b/4-\354\225\214\352\263\240\353\246\254\354\246\230/CS50 \354\275\224\354\271\255\354\212\244\355\204\260\353\224\224 2\352\270\260 _ \360\237\222\216 4\354\243\274\354\260\250 \353\257\270\354\205\230! (2\354\233\224 4\354\235\274 \353\252\251\354\232\224\354\235\274 \354\230\244\355\233\204 6\354\213\234 \353\247\210\352\260\220) _ \353\266\200\354\212\244\355\212\270\354\275\224\354\212\244.pdf"
new file mode 100644
index 0000000000000000000000000000000000000000..e5647f8841d7edc750a6a18de469b6cabad74d8f
GIT binary patch
literal 1724193
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 C#9U->Jc4ciJW_f!#`S_aSMwG0T+fzWXQN
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