daino_saur
article thumbnail
Published 2023. 11. 16. 19:12
[CS50] 알고리즘 프로그래밍/CS
반응형

 

썸네일

 

오늘은 알고리즘에 대해 알아보겠다.

 

알고리즘이란?

 

→ 문제를 해결하는 단계적인 방법

 

알고리즘

 

여러 알고리즘이 있다.

 

전화번호부 예시

 

Mike를 전화번호부에서 찾으려면 첫 장부터 한 장씩 넘겨 찾는 방법이 있을 수 있다.

 

1024장이면 최대 1024단계가 필요할 수도 있다.

 

더 빠르게 하면 반씩 분류해서 정보를 정리 할 수 있다.

 

이렇게 하면 1024장이면 10단계면 찾을 수 있다.

 

전화번호부 예시

 

이 단계들을 알고리즘이라고 한다.

 

좋은 알고리즘이란?

 

해결해야할 양 대비 처리속도가 더 적게 늘어나는 것

정확하고 효율이 좋은

 

좋은 알고리즘이란?
가로 값: 문제의 양 / 세로 값: 해결 시간

 

문제의 양대비 해결 시간이 적은 것이 좋은 알고리즘이다. 

 

의사코드

 

전화번호부 예시를 코드 형식으로 나타내본다.

 

전화번호부 - 의사코드

 

  1. 전화번호부를 집어 든다
  2. 전화번호부의 중간을 편다
  3. 페이지를 본다
  4. 만약 Mike Smith가 페이지에 있으면
    1. Mike Smith에게 전화한다.
  5. 그렇지 않고 만약 Mike Smith가 앞 페이지에 있으면
    1. 앞 페이지의 절반을 편다
    2. 3번째 줄부터 다시 실행한다
  6. 그렇지 않고 만약 Mike Smith가 뒷 페이지에 있으면
    1. 뒷 페이지의 절반을 편다
    2. 3번째 줄부터 다시 실행한다
  7. 그러지 않으면
    1. 그만둔다

 

함수

 

컴퓨터에게 무엇을 할지 알려주는 동사 같은 것

 

함수

 

조건

 

여러 선택지 중 하나를 고르는 것

 

조건

 

불리언(Boolean)

 

참과 거짓 아니면 2진법에서 0 또는 1로 나오는 질문

 

불리언

 

루프(loop)

 

뭔가를 계속해서 반복하는 순환

 

루프

 

 

반응형

'프로그래밍 > CS' 카테고리의 다른 글

[CS50] 정보의 표현  (0) 2023.11.16
[CS50] 컴퓨팅사고와 2진법  (0) 2023.11.16
[CS50] 다시, 컴퓨터 사이언스를 공부하는 이유  (0) 2023.11.16
profile

daino_saur

@daino

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!