[CS50] 컴퓨팅 사고 - 알고리즘
TIL
알고리즘이란컴퓨터는 입력을 받아 처리한 후 출력한다. 입력받은 자료를 출력 형태로 만드는 처리 과정을 알고리즘이라고 한다.알고리즘은 입력값을 출력값으로 바꾸기 위한 명령들의 순서적 나열이다. 같은 결과를 만들더라도 알고리즘에 따라 소요 시간이 달라질 수 있다.정확한 알고리즘전화번호부에서 Mike Smith를 찾는다고 가정해보자.첫 페이지를 펼친다.Mike Smith가 있는지 확인한다.없으면 다음 페이지로 넘긴다.찾을 때까지 또는 끝날 때까지 반복한다.이 알고리즘은 정확하다. Mike Smith가 있다면 언젠가는 찾을 수 있다.하지만 한 페이지씩 넘기는 방식은 매우 비효율적이다. 한 번에 두 페이지를 넘기면? 빨라지지만 원하는 페이지를 건너뛸 수도 있다. 여전히 가장 효율적인 방법은 아니다. 효율적인 알고..
[CS50] 컴퓨팅 사고 - 정보의 표현
TIL
컴퓨터의 정보 처리우리는 컴퓨터를 통해 다양한 정보를 처리한다. 간단한 숫자부터 문자, 사진, 영상, 음악까지 정보를 표현하는 형태는 매우 많다. 컴퓨터는 어떻게 이런 다양한 정보를 처리할까?문자의 표현컴퓨터는 스위치를 ON/OFF하면서 숫자를 표현한다. 그렇다면 문자는 어떻게 표현할까?문자를 숫자로 표현할 수 있도록 정해진 약속(표준)이 있다. 그중 하나가 ASCII(American Standard Code for Information Interchange, 아스키코드)로, 총 128개의 문자를 정의한다.알파벳 'A'를 2진법으로 표현하면 다음과 같다. 10진법으로 65이므로 2^6×1 + 2^0×1 = 64+1, 즉 1000001이다. ASCII는 영문 알파벳과 기본 기호만 표현할 수 있어 한계가 있..
[CS50] 컴퓨팅 사고 - 2진법
TIL
컴퓨터 과학과 문제해결컴퓨터 과학은 문제 해결에 대한 학문이다.문제 해결은 입력(input)을 전달받아 출력(output)을 만들어내는 과정이며 그 중간에 있는 과정이 바로 컴퓨터 과학이다.입력과 출력을 표현하기 위해서는 모두가 동의할 약속(표준)이 필요하다.2진법우리가 일상에서 사용하는 10진법은 0부터 9까지 총 10개의 기호로 숫자를 표현한다.반면 컴퓨터는 오직 0과 1로만 데이터를 표현하며, 이를 2진법이라고 한다. 다음의 표는 10진법과 2진법의 자릿수별 값을 보여준다.10진법은 10의 거듭제곱, 2진법은 2의 거듭제곱으로 각 자릿수의 값이 결정된다. 예를 들어, 2진법으로 011은 10진법의 3을 나타낸다. (0x4 + 1x2 + 1x1 = 3) 이렇게 컴퓨터는 숫자뿐만 아니라 글자, 사진, ..