320x100
๐boostcourse ์ '๋ชจ๋๋ฅผ ์ํ ์ปดํจํฐ ๊ณผํ (CS50 2019)' ์ ๋ฃ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
์๊ณ ๋ฆฌ์ฆ
- ์ ๋ ฅ(input)์์ ๋ฐ์ ์๋ฃ๋ฅผ ์ถ๋ ฅ(output) ํํ๋ก ๋ง๋๋ ์ฒ๋ฆฌ๊ณผ์ ์ ์๋ฏธํจ
- ์
๋ ฅ๊ฐ์ ์ถ๋ ฅ๊ฐ์ ํํ๋ก ๋ฐ๊พธ๊ธฐ ์ํด ์ด๋ค ๋ช
๋ น๋ค์ด ์ํ๋์ด์ผ ํ๋์ง์ ๋ํ
๊ท์น๋ค์ ์์์ ๋์ด - ์ด๋ฌํ ์์์ ๊ท์น๋ค์ ์ด๋ป๊ฒ ๋์ดํ๋์ง์ ๋ฐ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ข ๋ฅ๊ฐ ๋ฌ๋ผ์ง๋ค.
- ๊ฐ์ Output์ด ๋์ค๋๋ผ๋ ์ถ๋ ฅ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ฐ๋ผ์ ํจ์จ์ฑ์ด ๋ฌ๋ผ์ง ์ ์๋ค.
์ ํํ ์๊ณ ๋ฆฌ์ฆ
์ฌ๊ธฐ ์ ํ๋ฒํธ๋ถ๊ฐ ํ๋ ์๋ค.
์ ํ๋ฒํธ๋ถ?
: ํธ๋ํฐ์ด ๋ณดํธํ ๋๊ธฐ ์ ์ ์ฐ์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฑ ์์ ์ฌ๋ฌ ์ฌ๋๋ค์ ์ด๋ฆ๊ณผ ์ ํ๋ฒํธ๊ฐ ์ ํ์๋ ์ฑ
์ฌ๊ธฐ์ Mike Smith๋ฅผ ์ฐพ์์ผ ํ๋ ์ํฉ์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์.
- 1๋ฒ ๋ฐฉ๋ฒ
- ์ฒซ ํ์ด์ง๋ฅผ ํด๊ณ Mike Smith๋ฅผ ์ฐพ๋๋ค
- ์๋ค๋ฉด ํ ์ฅ์ ๋๊ธฐ๊ณ Mike Smith๋ฅผ ์ฐพ๋๋ค
- ์ฐพ์ ๋ ๊น์ง ๋ฐ๋ณตํ๋ค.
- ๊ฒฐ๊ณผ
- ์ ํ์ฑ ↑
- ํจ์จ์ฑ ๋งค์ฐ↓ : ์๊ฐ์ด ๋๋ฌด ๋ง์ด ์์๋๋ค.
- 2๋ฒ ๋ฐฉ๋ฒ
- ์ฒซ ํ์ด์ง๋ฅผ ํด๊ณ Mike Smith๋ฅผ ์ฐพ๋๋ค.
- 2์ฅ์ ๋๊ธฐ๊ณ Mike Smith๋ฅผ ๋ค์ ์ฐพ๋๋ค.
- ์ฐพ์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
- ๊ฒฐ๊ณผ
- ์ ํ์ฑ ↓ : ํ์ด์ง๋ฅผ ์ง๋์น๊ฒ ๋๋ค๋ฉด Mike Smith๋ฅผ ๋ชป ์ฐพ์ ์๋ ์์
- ํจ์จ์ฑ ↑
- ๋ ๋ฐฉ๋ฒ ๋ชจ๋ ์ข์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ ํ ์ ์์
- ์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐํ ๋๋ ์ ํ์ฑ๋ ์ค์ํ์ง๋ง, ํจ์จ์ฑ๋ ์ค์ํ๋ค.
์ ํํ๊ณ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ?
→ 1, 2๋ฒ๋ณด๋ค ๋ ์ง๊ด์ ์ด๊ณ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํด๋ณด์๐
- 3๋ฒ ๋ฐฉ๋ฒ
- ์ ํ๋ฒํธ๋ถ์ ๊ฐ์ด๋ฐ๋ฅผ ํธ๋ค.
- ๋ง์ฝ ์ฌ๊ธฐ์ Mike Smith๊ฐ ์๋ค๋ฉด ์๊ณ ๋ฆฌ์ฆ ์ข ๋ฃ
- ์๋ค๋ฉด ABC์์์ด๋ฏ๋ก Mike Smith๊ฐ ์, ๋ค ์ด๋ ์ชฝ์ ์๋์ง ํ๋จํ์ฌ ์๋ ์ชฝ์ ๋ฒ๋ฆฐ๋ค.
- ๋จ์ ์ฑ
์ ๊ฐ์ด๋ฐ ํ์ด์ง๋ฅผ ํธ๋ค.
- Mike Smith๊ฐ ์๋ค๋ฉด ์ข ๋ฃ
- ์๋ค๋ฉด 2๋ฒ์ผ๋ก ๋์๊ฐ์ Mike Smith๋ฅผ ์ฐพ์ ๋ ๊น์ง ๋ฐ๋ณตํ๋ค.
- ์ ํ๋ฒํธ๋ถ์ ๊ฐ์ด๋ฐ๋ฅผ ํธ๋ค.
์ ํ๋ฒํธ๋ถ์ ํ์ด์ง๊ฐ 200์ฅ์ด ๋ ์ถ๊ฐ๋์๋ค๊ณ ๊ฐ์ ํด๋ณด์
1๋ฒ ๋ฐฉ๋ฒ 3๋ฒ ๋ฐฉ๋ฒ ํ ์ฅ์ ๋๊ธฐ๊ณ ๋ ํ ์ฅ์ ๋๊ธฐ๋ ๊ท์น๋ค์ ์์์ ๋์ด ๋ฐ์ ์ค์ด๊ณ , ๋ ๋ฐ์ ์ค์ด๋ ๊ท์น๋ค์ ์์์ ๋์ด → ํ์ด์ง๋ฅผ 100๋ฒ ๋ ๋๊ฒจ์ผ ํ๋ค.
= ์ ์ฐจ๊ฐ 100๋ฒ ์ถ๊ฐ→ ์ ๋ฐ์ฉ ์ค์ด๋๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฏ๋ก 1๋ฒ๋ง ๋ ์ํํ๋ค.
= ์ ์ฐจ 1๋ฒ๋ง ๋ ์ถ๊ฐ๋จ
⇒ ์ฆ, 3๋ฒ ๋ฐฉ๋ฒ์ด 1๋ฒ ๋ณด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ก ํจ์จ์ ์ด๋ค.
Pseudo code(์์ฌ ์ฝ๋)
- ์์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋์ ๊ฐ์ Pseudo ์ฝ๋(์์ฌ ์ฝ๋)๋ผ๋ ๋ฐฉ์์ผ๋ก ๋ณด๋ค ๋ช ๋ฃํ๊ฒ ์ ๋ฆฌํ ์ ์๋ค.
- ๋ค์ฌ ์ฐ๊ธฐ ๋ ๋ถ๋ถ = ์ข ์๊ด๊ณ๋ฅผ ๋ํ๋
1. ์ ํ๋ฒํธ๋ถ๋ฅผ ์ง์ด ๋ ๋ค
2. ์ ํ๋ฒํธ๋ถ์ ์ค๊ฐ์ ํธ๋ค
3. ํ์ด์ง๋ฅผ ๋ณธ๋ค
4. ๋ง์ฝ Mike Smith๊ฐ ํ์ด์ง์ ์์ผ๋ฉด
5. Mike Smith์๊ฒ ์ ํํ๋ค.
6. ๊ทธ๋ ์ง ์๊ณ ๋ง์ฝ Mike Smith๊ฐ ์ ํ์ด์ง์ ์์ผ๋ฉด
7. ์ ํ์ด์ง์ ์ ๋ฐ์ ํธ๋ค
8. 3๋ฒ์งธ ์ค๋ถํฐ ๋ค์ ์คํํ๋ค
9. ๊ทธ๋ ์ง ์๊ณ ๋ง์ฝ Mike Smith๊ฐ ๋ท ํ์ด์ง์ ์์ผ๋ฉด
10. ๋ท ํ์ด์ง์ ์ ๋ฐ์ ํธ๋ค
11. 3๋ฒ์งธ ์ค๋ถํฐ ๋ค์ ์คํํ๋ค
12. ๊ทธ๋ฌ์ง ์์ผ๋ฉด
13. ๊ทธ๋ง๋๋ค
- Pseudo ์ฝ๋๋ฅผ ๋ณด๋ฉด C์ธ์ด๋ ํ์ด์ฌ๊ณผ ๊ฐ์ ์ธ์ด์์๋ ๋ณผ ์ ์๋ ๊ณตํต์ ์ด ์๋ค.
1. ๊ฐ์กฐ๋ ๋ถ๋ถ ⇒ ํจ์(function)๋ฅผ ์๋ฏธ
- ํจ์๋ ์ปดํจํฐ์๊ฒ ๋ฌด์์ ํ ์ง ์๋ ค์ฃผ๋ ๋์ฌ์ ๊ฐ๋ค.
2. ๊ฐ์กฐ๋ ๋ถ๋ถ ⇒ ์กฐ๊ฑด์ ์๋ฏธ
- ์กฐ๊ฑด์ด๋ ์ฌ๋ฌ ์ ํ์ง ์ค์์ ํ๋๋ฅผ ๊ณ ๋ฅด๋ ๊ฒ
3. ๊ฐ์กฐ๋ ๋ถ๋ถ ⇒ ๋ถ๋ฆฌ์ธ(Boolean)
- ๋ต์ด ์ / ์๋์ค ๋๋ ์ฐธ(True) / ๊ฑฐ์ง(False) ๋๋ 2์ง๋ฒ์ 0 / 1๋ก ๋์ค๋ ์ง๋ฌธ์ ๋ปํจ
4. ๊ฐ์กฐ๋ ๋ถ๋ถ ⇒ ๋ฃจํ(Loop)
- ๋ฌด์์ธ๊ฐ๋ฅผ ๊ณ์ํด์ ๋ฐ๋ณตํ๋ ์ํ์ ์๋ฏธ
๋ฐ์ํ
'Computer Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ปดํจํ ์ฌ๊ณ - ์ ๋ณด์ํํ (0) | 2022.02.05 |
---|---|
์ปดํจํ ์ฌ๊ณ - 2์ง๋ฒ (0) | 2022.02.02 |
๋๊ธ