180923 TIL CS50 W0

» 1막, TIL (Today I Learned)

알고리즘 풀기

CS50 Week 0

CS50 Week 0 강의

강의 내용

Binary

  • 컴퓨터는 이진법을 사용한다. (0 or 1)
  • 십진법에서 ‘123’은 ‘일백이십삼’이다. 이진법도 같은 방식으로 숫자를 표현하지만 십진법이 쓰는 10의 지수 대신 2의 지수를 사용한다.
  • 이진법에서는 0,1를 저장하는 비트(bit)가 필요하다. 컴퓨터는 전원이 ‘켜짐’ ‘꺼짐’으로 편리하게 0,1를 표현한다. 컴퓨터 안에 들어있는 많은 트랜지스터나 아주 작은 스위치들이 ‘켜짐’과 ‘꺼짐’을 통해 데이터를 표현한다.
  • 우리가 숫자를 표현할 수 있으니 단어나 문자도 표현할 수 있다. 운좋게도 숫자를 문자로 변환하는 ASCII(아스키)라고 불리는 표준 매핑이 있다.
  • 72,73,33과 같은 숫자들을 표현하는 비트의 나열은 아스키에서 HI!를 표현하기도 하지만 그래픽 프로그램에서는 색상을 나타낼수도 있다. (예: RGB)
  • ASCII나 RGB에서 각 문자나 한 색깔의 양의 최대값은 255인데, 비트의 한 일반 기준 그룹이 바이트(byte) 혹은 8비트이기 때문이다. (text?????????????? 256이 아니라 왜 255야... 아 0을 포함해서 256인가)

Algorithms

image

  • 검은 상자를 알고리즘으로 표현해보자. 알고리즘은 문제 해결을 위한 일련의 단계를 말한다.
  • 가지고 있는 문제를 input, 원하는 해결책은 ouput
  • 이제 이진법으로 input과 output을 표현할 수 있으므로 문제를 풀기위한 단계별 지시사항인 알고리즘을 시작할 수 있다.
  • 컴퓨팅 사고는 이런 정확한 지시사항의 아이디어를 뜻한다.

image

  • 여러 알고리즘이 얼마나 빠른지 고려해보면 위와 같은 그래프를 얻을 수 있다.