우리는 일상에서 10진법을 사용한다.숫자 123을 예를 들어보면,위와 같은 구조로 이해할 수 있다.그런데 컴퓨터는 숫자를 표현하거나 글자, 사진, 영상, 소리등을 저장할 때 오로지 2진법을 사용한다.ex1) 10진법의 3은 2진법에서 다음과 같이 표현된다. 2^1x1
컴퓨터는 문자를 숫자로 표현 할 수 있도록 정해진 약속(표준) 이 있다.그 중 하나는 설명미국정보교환표준부호 ASCII(아스키코드/American Standard Code for Information Interchange) 이다.총 128개의 부호로 정의되어 있는데,
컴퓨터는 2진법으로 숫자, 글자, 색깔 등을 입력(input)한다.그리고 출력(output)을 해야 하는데 그 중간 과정에 알고리즘이라는 것이 있다.알고리즘은 입력(input)에서 받은 자료를 출력(output)형태로 만드는 처리 과정을 뜻한다.즉, 알고리즘이란 입력값
1. 아날로그 소리를 디지털로 변환 아날로그 신호를 디지털 신호로 변환하는 이유는 다음과 같다. 무질서한 잡음으로부터 구분하는 전자회로 설계가 용이 디지털 신호가 보다 명확하고 규칙적임 컴퓨터가 아날로그 사운드를 디지털 신호로 변환하는 과정(Analog to D
이 한줄의 문장은 'stdio.h 안에 정의되어 있는 많은 함수들을 내 코드안에 포함시켜서 프로그램을 만들겠다.' 라는 의미이다.여기서 stido는 standard input output의 약자이다.h는 파일의 확장자, header를 나타낸다. 간단하게 '시작한다'의
문자열을 다루기 위해서는 문자열 형식을 가진 변수가 필요하다. 사용자로부터 문자열을 입력받고 이를 다른 문자열과 합쳐서 출력하는 프로그램을 C로 작성해보자.What's your name? 이라는 문자를 특정 변수에 담은 뒤, 파일을 실행시키면 What's your na
위 코드는 counter라는 변수에 숫자 0을 저장한 것이다.여기서 int는 변수가 정수(integer)라는 것을 알려주는 것이고, counter는 변수의 이름, 0은 그 값에 0을 저장(초기화)하는 것이다.그리고 여기서 등호(=)는 같다는 의미가 아닌, 오른쪽에 있는
1. 데이터 타입 아래 목록은 변수의 데이터 타입으로 사용할 수 있는 것들이다. bool: 불리언 표현, (예) True, False, 1, 0, yes, no char: 문자 하나 (예) 'a', 'Z', '?' string: 문자열 int: 특정 크기 또는 특정
"cough"라고 세 번 말하는 C 프로그램 만들기void를 입력하고 원하는 함수명(cough)을 적은 뒤 괄호 안에 void를 적는다.그리고 printf로 cough를 출력하는 코드를 작성한다.그 후 int main(void) 안에 cough(함수명)를 사용해보면 정
2주차 boost course 팀 퀴즈를 풀어보았다. Q1. 여러분은 기존 오프라인에서 리테일 사업으로 유명한 신선식품 업체에 입사한 개발자 입니다. 최근 디지털 트랜스포메이션 이슈에 따라 기존 오프라인으로 운영하던 리테일 사업을 온라인으로 전환하게 되었습니다.
컴파일은 소스 코드를 오브젝트 코드로 변환시키는 과정이다. 여기서 소스 코드는 C언어와 같은 프로그래밍 언어로 작성한 코드이고, 오브젝트 코드는 기계어라고도 알려져 있는데, 0과 1로 이루어져 있으며 컴퓨터에게 프로그램이 어떻게 실행되어야 하는지 알려주는 코드이다.ma
C에는 아래와 같은 여러 자료형이 있고, 각각의 자료형은 서로 다른 크기의 메모리를 차지한다. bool: 불리언, 1바이트 char: 문자, 1바이트 int: 정수, 4바이트 float: 실수, 4바이트 long: (더 큰) 정수, 8바이트 double: (더 큰)
우리가 여지껏 사용한 문자열(string) 자료형의 데이터는 사실 문자(char) 자료형의 데이터들의 배열이었다. string s = “HI!”; 와 같이 문자열 s가 정의되어 있다고 생각해보자.s는 문자의 배열이기 때문에 메모리상에 아래 그림과 같이 저장되고, 인덱스
make나 clang과 같은 프로그램을 실행할 때 컴파일하고자 하는 코드 외에도 컴파일 후 저장하고자 하는 파일명과 같이 추가적인 정보를 함께 줄 수도 있다. 이런 정보들을 명령행 인자 라고 부른다. 우리가 작성하는 프로그램에서도 명령행 인자를 받을 수 있도록 설계할
배열은 한 자료형의 여러 값들이 메모리상에 모여 있는 구조이다.컴퓨터는 이 값들에 접근할 때 배열의 인덱스 하나하나를 접근한다.만약 어떤 값이 배열 안에 속해 있는지를 찾아 보기 위해서는 배열이 정렬되어 있는지 여부에 따라 다른 방법을 사용할 수 있다.예를 들어 10개
우리가 프로그램을 작성한 후에 실행하면 작업이 완료될때까지 어느정도 시간이 소요된다. 아주 간단한 프로그램인 경우에는 실행 시간을 걱정할 필요가 없지만, 처리하는 데이터가 많아지고 처리하는 작업이 복잡해질수록 실행 시간은 매우 중요해진다. 이번 포스팅은 특정 알고리즘을
찾고자 하는 자료를 검색하는 데 사용되는 다양한 알고리즘이 있다.그 중 하나가 선형 검색이다.선형검색은 원하는 원소가 발견될 때까지 처음부터 마지막 자료까지 차례대로 검색한다.이렇게 하여 선형 검색은 찾고자 하는 자료를 찾을 때까지 모든 자료를 확인해야 한다.선형 검색
정렬되지 않은 리스트를 탐색하는 것보다 정렬한 뒤 탐색하는 것이 더 효율적이다.정렬 알고리즘 중 하나는 버블 정렬이다.버블 정렬은 두 개의 인접한 자료 값을 비교하면서 위치를 교환하는 방식으로 정렬하는 방법을 말한다.버블 정렬은 단 두 개의 요소만 정렬해주는 좁은 범위
보통 배열이 정렬되어 있으면 정렬되지 않은 배열보다 더 쉽게 탐색할 수 있다.정렬을 위한 알고리즘 중 선택 정렬은 배열 안의 자료 중 가장 작은 수(혹은 가장 큰 수)를 찾아 첫 번째 위치(혹은 가장 마지막 위치)의 수와 교환해주는 방식의 정렬이다.선택 정렬은 교환 횟
여태까지 다뤘던 선형 검색, 이진 검색, 버블 정렬, 선택 정렬의 실행시간은 각각 어떻게 되는지 정리해 보자.실행시간의 상한O(n^2): 선택 정렬, 버블 정렬O(n log n)O(n): 선형 검색O(log n): 이진 검색O(1)실행시간의 하한Ω(n^2): 선택 정렬
함수를 사용할 때는 main 안에서 프로그램을 작성하면서 필요한 순간에 호출하여 사용한다.그런데 main 역시 함수이다. main이라는 함수 안에서 또 다른 함수를 사용한 것이다.이 사실을 알게 되었을 때, 우리는 함수가 본인 스스로를 호출해서 사용할 수 있는지에 대해
병합 정렬은 원소가 한 개가 될 때까지 계속해서 반으로 나누다가 다시 합쳐나가며 정렬을 하는 방식이다.그리고 이 과정은 재귀적으로 구현된다.마찬가지로 다음 숫자들을 오름차순으로 정렬해보자. 7 4 5 2 6 3 8 1먼저 숫자들을 반으로 나눈다.7 4 5 2 | 6 3