반응형

프로그래밍/Computer Science 23

[Overview] 01. Data Storage - (1) Bit 그리고 Bit의 저장

어떤 컴퓨터 관련 수업이든 처음은 bit의 이해부터 시작한다. bit(binary digit)는 컴퓨터 안에서 정보를 나타내기 위한 최소 구성 단위로, 0과 1로 이루어져 있다. 여기까지만 들었을 때 '0, 1로 이루어진 숫자구나'라고 생각하기 쉽지만 사실 전류가 끊겼다 이어졌다 하는 전기적인 신호를 우리가 알아보기 쉽게 0과 1로 나타낸 것 뿐이다. 그래서 bit를 0, 1로 나타낸 것과 마찬가지로 False, True로 나타낼 수도 있다. 아무튼 컴퓨터는 비트의 패턴(Patterns of bits)들을 이용해서 정보를 표현한다. 이 비트의 패턴, 즉 정보는 알파벳과 같은 문자를 나타낼 수도 있고 이미지나 소리를 나타낼 수도 있다. 01. 부울 연산(Boolean Operations) 논리(logic)..

[알고리즘] 02. 에라토스테네스의 체

소수를 판별하는데 자주 쓰이는 에라토스테네스의 체를 정리해보자. 벨로그에 정리했었지만 다시 한번 정리해보려고 한다. 소수(Prime number)란? 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수를 소수라고 정의한다. 소수를 작은 순서대로 나열하면 2, 3, 5, 7, 11, 13, 17, 19, 23...이며 코딩테스트를 준비한다면 바로바로 생각할 수 있게 2, 3, 5, 7까진 외워두는 것이 좋다. 소인수분해(소수의 곱) 문제를 풀 때도 소수는 중요한 부분을 차지한다. 반대로 소수가 아닌 수는 합성수라고 한다. 에라토스테네스의 체(Sieve of Eratosthenes) 에라토스테네스의 체는 고대 그리스의 수학자인 에라토스테네스가 발견한 소수를 구하는 방법으로 2의 배수, 3의 배수 등을..

[알고리즘] 01. 정렬 알고리즘(Sorting Algorithm)

velog에 정렬 알고리즘을 정리했지만 다시 조금씩 까먹는 것 같아 다시 한번 정리하려고 한다 컴퓨터 과학 분야에서 정렬 알고리즘은 어떤 자료의 요소를 순서대로 배치하는 방법에 관한 것이다. 검색이나 병합 알고리즘을 사용할 때 입력된 데이터가 효율적으로 정렬되어 있는 것이 중요한데, 이 때 정렬의 효율성에 알고리즘이 고려된다 정렬 알고리즘의 아웃풋은 아래의 두가지 조건을 충족해야 해야 한다 1. 아웃풋은 단조(monotonic)로워야 한다 2. 아웃풋은 인풋의 순열(permutations)이어야 한다 즉, 정렬 알고리즘을 사용해 정렬이 끝난 뒤에 결과물의 각 요소는 (1) 이전 요소보다 작거나 크지 않아야 하며(한가지 흐름을 유지한다는 뜻) (2) 인풋의 모든 요소를 유지해야 한다 위와 같이 다양한 정렬..

반응형