본문 바로가기

반응형

프로그래밍

(30)
[Arduino] 2. 아두이노 설치하기 아두이노(Arduino)에서는 아두이노 보드를 활용한 프로그램 개발을 지원하기 위해서 개발용 소프트웨어를 제공한다. 아래의 아두이노 홈페이지를 접속해서 설치할 수 있다.https://www.arduino.cc/ 위와 같은 화면에서 소프트웨어를 클릭한다. 그러면 아래와 같은 그림을 볼 수 있다. 1. Windows OS여기서 자신의 OS에 맞는 버전을 찾아 다운하면 된다. Windows installer를 이용하자. 아두이노를 위해 기부 할 생각이 있는지 묻는다. 우선은 JUST DOWNLOAD를 눌러 Installer를 다운받아 주자.다운받아진 Installer를 실행시켜 설치를 완료하자. 설치 도중에, Arduino 연결을 위한 USB 설치가 추가적으로 이루어지는데, 창이 뜬다면 YES를 눌러주자. 설..
[자료구조] 5_2. Heap 1. 정의힙(Heap)이란 완전이진트리(Complete Binary Tree)를 기본으로 하는 Tree-based 자료 구조이다. Heap은 기본적으로 다음과 같은 조건을 만족한다. A가 B의 부모 노드이면, A 노드의 value와 B 노드의 value 사이에는 대소관계가 성립한다. 위의 조건을 만족하는 Heap으로 Max Heap과 Min Heap을 생각해볼 수 있다. Max Heap의 경우 부모 노드가 항상 자식 노드보다 큰 경우이고, Min Heap의 경우는 그 반대로 부모 노드가 항상 자식 노드보다 작은 경우가 된다. 이러한 원리에 의해서 당연히 Max Heap의 Root는 가장 큰 값이 될 것이고, Min Heap의 Root는 가장 작은 값이 될 것이다. Heap의 규칙에 의해 Root는 항상 ..
[알고리즘] 1_4. 병합 정렬(Merge Sort) 1. 정의병합정렬(Merge Sort)는 Divide and Conquer(분할정복) 알고리즘으로 분류되며, 일반적이고 간단한 방법으로 최대, 최악의 경우에도 O(nlogn)의 속도로 sort가 가능하다. Divide and Conquer로 제안된 Merge Sort 알고리즘은 Top-down 방식으로 구현되었다.(후에 Bottom-up 방식의 알고리즘도 발표되었다.) 정렬 방식은 전체의 원소를 1개 원소의 단위로 분할한 뒤, 다시 병합과정을 거쳐 새롭게 정렬된 배열을 생성한다. 같은 평균 속도 O(nlogn)를 가지는 Quick Sort, Heap Sort와 함께 실제로 사용한 경우, 비교적 느리다.(Quick>Heap>Merge 순서) Array의 정렬보다는 Linked List의 정렬에 주로 사용된..
[C] 4. 표현식(Expression) 1. 표현식(Expression)컴퓨터가 프로그램을 실행하는 것은 사실, 수많은 식들의 조합이다. 우리가 흔히 수학에서 사용되는 그 식이라고 생각하면 맞다. 그러한 식들을 조합해서 다양한 프로그램을 만드는 것이다. 프로그램 언어를 이용해서 프로그래밍을 할 때, 우리가 계산을 위해서 사용하는 식들을 표현식(expression)이라 부르고, 이러한 표현식들은 피연선자(operand)들과 연산자(operator)들로 이루어진다. 당연한 얘기겠지만, 이러한 '계산'을 수행하는 표현식들은 항상 결과값을 가진다.피연산자(Operand) : 표현식에서의 상수 또는 변수(ex. 1+2에서 1 과 2)연산자(Operator) : =, +, =, *, / 등이 있다. 1) Primary Expression operator..
[C] 3. 표준 입출력과 주석 1. 출력함수 printfC 에서는 다양한 출력함수를 제공하지만, 가장 간단하고, 먼저 접근하게 되는 출력함수는 printf 함수일 것이다. printf 함수는 stdio,h에 선언되어 있고, 따라서 우리는 이 함수를 사용하기 위해서 #include와 같이 stdio.h 파일을 include 해준다. printf의 함수를 어떻게 사용하는지 알아보자.int printf ( const char * format, ... );printf의 함수의 선언은 위와 같다. format의 내용을 stdout으로 console창에 띄워주는 역할을 한다. 출력하고자하는 format에는 앞서 배운 형식 문자(format character)를 사용할 수 있다. printf함수는 format에 형식 문자가 존재하면, 형식 문자의..
[C] cf. 형식문자(Format Character) 1. 형식 문자(Format Character)데이터를 입/출력 할 때, 컴퓨터가 그 Type을 인식할 수 있도록, 데이터의 해석을 지시해주는 문자이다. 우리가 흔히 사용하는 scanf와 printf에서 주로 사용되며, %c, %d, %f 등과 같은 문자를 의미한다. 형식 문자가 사용되는 이유는, 같은 데이터라도 해석하는 방향에 따라 다른 문자가 될 수 있기 때문이다. 예로, 'a'라는 알파벳 소문자 데이터는 단일 character로 인식하는 경우(%c) a를 출력하지만, 정수로 인식하는 경우(%d) 97을 출력할 수 있다. 따라서 C 언어에서는 다양한 형식 문자를 지원한다. - %c : char, short, int, 단일 바이트 문자 입/출력에 사용.- %d, %i : char, short, int,..
[C] cf. ASCII CODE 1. ASCII Code란? ASCII(American Standard Code for Information Interchange)는 문자들, 특히 알파벳을 컴퓨터에서 사용하기 위한 문자 인코딩이다. ASCII Code는 국제 표준 기구에 의해서 개발되었고, 1967년에 미국 국립 표준 연구소에서 제정되었으며, 1986년에 최종적으로 개정되었다. ASCII Code는 7bit Code로 총 128개의 문자들을 나타낼 수 있다. 그 중 0~32의 33개의 문자들은 제어 문자들로 구성되어 있고, 33~127의 95개의 문자들은 출력가능한 문자들로 이루어져 있다. ASCII Code의 표는 아래와 같다. 2. C 언어에서의 ASCII CODE C 언어에서 문자를 출력하기 위해서 ASCII를 사용한다. 앞서 배..
[C] 2. C 언어의 자료형 1. C 언어의 자료형 자료형의 정의는 다음과 같다. "가상 메모리에 할당된 공간을 일정 크기로 구분해서 특정한 의미를 부여한 뒤 해석하는 것." 상당히 어려운 말로 설명되어있다. 아직은 이게 정확히 무슨 말인지 알 필요는 없을 것 같다. 간단히 자료형을 설명하면, C 언어에서 사용이 가능한 데이터(자료)의 종류라는 것이다. C 언어가 지원하는 자료형은 다음과 같다. 앞으로 우리가 주로 사용 할 자료형은, int, char, float, double 정도가 될 것이다. int는 주로 정수의 표현에 사용되는 자료형이며, char는 문자의 표현에 사용한다. float와 double은 소수의 표현에 사용한다. 이러한 자료형들은 크기나 표현 범위들이 다른데, 표로 그 차이를 알아보자. 이렇듯 크기와 표현 범위가..