๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science

์ปดํ“จํŒ… ์‚ฌ๊ณ  - ์•Œ๊ณ ๋ฆฌ์ฆ˜ & Pseudo code

by vividmin 2022. 2. 7.
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๋ฒˆ ๋ฐฉ๋ฒ•
    1. ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์˜ ๊ฐ€์šด๋ฐ๋ฅผ ํŽธ๋‹ค.
      • ๋งŒ์•ฝ ์—ฌ๊ธฐ์— Mike Smith๊ฐ€ ์žˆ๋‹ค๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฃŒ
    2. ์—†๋‹ค๋ฉด ABC์ˆœ์„œ์ด๋ฏ€๋กœ Mike Smith๊ฐ€ ์•ž, ๋’ค ์–ด๋Š ์ชฝ์— ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜์—ฌ ์—†๋Š” ์ชฝ์„ ๋ฒ„๋ฆฐ๋‹ค.
    3. ๋‚จ์€ ์ฑ…์˜ ๊ฐ€์šด๋ฐ ํŽ˜์ด์ง€๋ฅผ ํŽธ๋‹ค.
      • 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

๋Œ“๊ธ€