CS50 - 알고리즘

알고리즘이란 무엇인가 ? - 컴퓨터가 입력을 받은 자료를 출력의 형태로 만드는 처리과정을 의미합니다. - 입력값을 출력값의 형태로 바꾸기 위해 어떠한 명령들이 수행되어야 하는지에 대한 규칙 알고리즘의 평가기준 - 정확성 과 효율성 예를들어 전화번호부 책자에서 "홍길동" 이라는 사람을 찾기 위해 어떤 알고리즘은 처음부터 끝까지 전화번호부를 한장씩 확인하는 방법을 사용하고 또 다른 알고리즘은 처음부터 끝까지 전화번호부를 두장씩 확인하는 방법을 사용하고 또 다른 알고리즘은 책을 중간으로 나눠 자음의 순서를 기준으로 필요없는 절반은 버리고 나머지 절반에서 또 다시 절반을 나누는 방식을 사용할 수 있습니다. 여기서 가장 좋은 알고리즘은 무엇일까요 ? 이렇게 알고리즘을 평가할 때 정확성도 중요하지만 효율성도 중요하..

ComputerScience 2021.04.15

CS50 - 정보의 표현

컴퓨터는 2진법이라는 약속을 사용하여 숫자를 표현한다 했습니다. 그럼 문자는 어떤 방식으로 표현할까요 ? 문자를 숫자로 표현한다는 약속이 있습니다. 바로 그 약속은 ASCII(아스키코드) 입니다. 총 128개의 부호로 정의되어 있고 그 정의는 아래와 같습니다. 위의 표처럼 수십년전 문자를 표현할 때 숫자 0 ~ 127 까지 총 128개의 약속을 정했습니다. 그럼 알파벳 A를 컴퓨터는 어떻게 저장할까요 ? A 는 10진수로 65 이므로 이를 2진법으로 변환한다. \(2^{6}\) X 1 + \(2^{5}\) X 0 + \(2^{4}\) X 0 + \(2^{3}\) X 0 + \(2^{2}\) X 0 + \(2^{1}\) X 0 + \(2^{0}\) X 1 = 65 이므로 즉, 1000001 로 표현하고, ..

ComputerScience 2021.04.12

CS50 - 2진법

컴퓨터 과학은 문제 해결에 대한 학문입니다. 문제 해결은 입력(Input)을 받아 출력(Output)을 만들어 내는 과정입니다. 그 중간에 있는 과정이 바로 컴퓨터 과학입니다. 이러한 입/출력을 표현하기 위한 모두에게 동일한 약속이 필요합니다. 따라서 컴퓨터과학에 가장 첫번째 개념은 어떻게 표현하는지에 대한 방법입니다. 이제 그 표현의 방법 중 하나인 2진법에 대해서 알아보겠습니다. 우리는 위 처럼 10진수 라는 약속을 사용하여 위 처럼 숫자를 표현 합니다. \(10^{2}\) * 1 + \(10^{1}\) * 2 + \(10^{0}\) = 123 위 처럼 표현하는 약속을 통해 우리는 숫자를 사용하고 있다. 제곱의 형태에 들어가는 수는 첫째(0) 자리 둘째 자리(1) 셋째 자리(2) 이다 그럼 이번에 2..

ComputerScience 2021.04.12