본문 바로가기

반응형
SMALL

전체 글

프로그래밍개론 22차시: Casting과 연산자 우선순위 Casting의 개념과 연산자 우선순위에 대해서 설명합니다. 더보기
프로그래밍개론 21차시: Assignment와 Conditional Assignment Assignment 연산자와 conditional assignment 연산자에 대해서 설명합니다. 더보기
프로그래밍개론 20차시: Bit shift 연산자 Bit shift 연산자에 대해서 설명합니다. 더보기
동영상을 이용한 올바른 프로그래밍 학습방법 동영상 기반 학습의 확산 요즘 동영상을 이용한 학습이 전세계적으로 유행이다. Khan Acamedy로부터 시작된 열풍이 이제는 대학으로까지 번지고 있다. Coursera, Edx, Udemy 등의 영리 사이트들도 속속 생겨났다. 이들 사이트들은 해외 유명대학의 강의들을 제공하고 있다. 소문난 강의의 경우 수십만명의 사람들이 수강하기도 한다. 무료 강의도 있지만, 유료 강의들도 상당수다. 그만큼 듣는 사람들이 많아졌다는 것이다. 동영상 기반 학습의 장점 동영상을 이용한 학습은 여러 가지 장점들을 가지고 있다. 우선 반복해서 다시 볼 수 있다는 큰 장점이 있다. 수업시간에 놓친 것들, 이해가 잘 되지 않았던 부분들을 반복해서 볼 수 있다. 이렇게 하면 자기가 이해하는 속도에 맞춰서 진행할 수도 있다. 또 다.. 더보기
데이터구조 15차시: Singly Linked List (SLL)의 구현, delete Singly Linked List (SLL)의 구현, delete함수에 대해서 설명합니다. 더보기
데이터구조 14차시: Singly Linked List(SLL)구현 destroy와 insert Singly Linked List(SLL)구현 destroy와 insert함수에 대해서 설명합니다. 더보기
데이터구조 13차시: Singly Linked List구현, Add Singly Linked List구현, Add 함수에 대해서 설명합니다. 더보기
데이터구조 12차시: Singly Linked List (SLL)의 구현을 위한 데이터 구조 SLL 노드 정의에 대해서 설명합니다. 더보기
데이터구조 11차시: 선형리스트( Singly Linked List)의 구현 선형리스트의 구현 ㅇ 선형리스트는 배열을 이용하면 쉽게 구현이 가능하지만, - 배열이 가지는 한계 때문에 부적절 ㅇ 배열의 단점 - 미리 정해진 크기를 넘어갈 경우 변경이 쉽지 않다. - 공간 낭비가 발생할 수 있다. - 중간에 새로운 요소를 넣기가 어렵다. ㅇ 배열의 단점은 Singly linked list (SLL)로 보완 - 데이터의 크기를 미리 알 수 없어도 사용가능 - 공간 낭비가 없다. - 중간에 새로운 요소 삽입이 쉽다. ㅇ SLL의 구조 - 개별 노드들을 줄로 이은 형태 - 필요할 때마다 새로운 노드를 추가 - 중간의 노드를 삭제하려면, 노드 제거후 줄 잇기만 다시 하면 ok ㅇ SLL 노드의 구현 - self-referencing structure를 이용 - 예를 들어, 정수를 저장하는 .. 더보기
데이터구조 10차시: 선형리스트 (Linked List) 개요 선형리스트 (Linked List)에 대해서 설명합니다. 더보기
데이터구조 9차시: 포인터, malloc Pointer (포인터)C언어 프로그래밍 공부를 힘들게 하는 원인 중의 하나다.개념은 간단하다.포인터는 주소를 다룬다.주소란 무엇인가? 예를 들어보자.int a;a = 4;Integer(정수)형 변수 a를 만들고, 거기에다가 값 4를 저장한다.이는 변수a를 위해 메모리에 저장공간을 만들고, 공간 'a'에 값 4를 저장한 것이다.메모리의 저장공간은 모두 고유의 숫자주소를 가지고 있다.사람들이 고유의 숫자 주민번호를 가지고 있듯이. 프로그래밍할 때 저장공간을 쉽게 기억하기 위해 'a'라는 이름을 쓰지만사실은 'a'도 숫자 주소를 가지고 있다.'a'의 주소를 알고 싶다고?printf ("%d", &a);&a는 a와 매칭된 메모리 저장공간의 주소를 의미한다.어느 변수든지 기호 &를 앞에 붙이면 해당 저장공간의 .. 더보기
데이터구조 8차시: 구조체와 typedef 구조체 (Struct)C언어에서 구조체를 이용하면,데이터형이 다른 여러 데이터를 묶어서새로운 데이터형을 만들 수 있다. 예를들어, int와 char 데이터를 하나씩 묶어서새로운 데이터 타입을 만드는 것은아래와 같이 할 수 있다.struct A{ int a; char c;}; 이렇게 하면, 새로운 데이터형 struct A가생겨나게 된다. 이를 사용하는 방법은 다음과 같다.struct A x;x.a = 10;x.c = 'h'; sturct A가 데이터형이므로,x는 struct A형의 변수가 된다.그리고,x 안에는 int를 저장하는 a가 있고,또 char를 저장하는 c가 있는 것이다.따라서,각각을 x.a와 x.c로 부르고,그곳에 값을 넣거나, 읽는 것은 일반 변수와 똑같이 하면 된다. 구조체변수 대입( Ass.. 더보기
데이터구조 7차시: 배열, 다차원 배열, array, multi dimensional array 배열 (Array)에 대한 복습데이터구조에서 배열을 많이 사용하기 때문에이쯤에서 한 번쯤복습해 보는 것이 좋겠다. 배열은,같은 데이터형 (data type)을 갖는 여러 개의 변수들을 손 쉽게 만들 수 있는 방법이다. int a[6];배열을 선언할 때는맨 앞에 데이터형을 쓰고,; 위에서는 int그 다음에 그 배열의 이름을 붙이고; 위에서는 a마지막에 몇 개를 만들 것인가를 [ ] 안에 지정한다.; 위에서는 6개 이 때 생기는 6개 배열변수들의이름은 아래와 같다.이렇게 번호를 이름삼아 부르는 데, 이 번호를 index 라고 한다.a[0], a[1], ... a[5] index는 0부터 시작이걸 절대 잊지 말아야 한다.사람들이 물건을 셀 때는첫 번째, 두 번째, ... 이렇게 1을 기준으로 하지만,C언어에서.. 더보기
데이터구조 6차시: Recursion을 이용한 피보나츠(Fibonacci) 수열계산과 하노이탑 Fibonacci 수열 계산하기. Fibonacci 수열은 무엇인가? 대충 이름은 들어봐서 알 것이다. 숫자들을 늘어 놓은 것이니 수열일테고,다만, 숫자들 사이에 특수한 관계가 있는 것인데,어떤 숫자든 자기 앞의 두 개 숫자의 합과 같아야 한다.이런 조건을 만족시키는 수열이 Fibonacci 수열이다.잠깐,Fibonacci 수열의 첫 번째와 두 번째 숫자는 모두 1이라는 것을기억합시다. Recursive함수를 이용하여 Fibonacci 수열 계산하기Fibonacci 수열을 계산하는 것은,recursion함수를 이용해서구현하는 것이 직관적이라서 쉽다. line 4-14: Fibonacci 숫자를 구하는 재귀함수이다.이 때 인수 n의 의미는 "n 번째" 숫자이다.그래서 fibo(1)은 첫 번째 Fibonac.. 더보기
데이터구조 5차시: Recursion을 이용한 거듭제곱 계산 Recursion을 이용한 거듭제곱의 계산재귀함수를 이용해서거듭제곱을 계산하는 프로그램을 작성해보자. 거듭제곱이게 무엇인가?아래와 같은 것을 말한다. 길게 설명할 필요는 없을 것 같다. 우리 말로는 2는 밑, 3은 지수라고 했던 것 같은데,영어로는 base와 exponent이다. 우리 말로는 '2의 3승' 이라고 읽는데,영어로는 'two to the third power' 혹은 간단히 'two to the three'라고 읽는다. Non-recursive로 거듭제곱 계산하기거듭제곱을 계산하는 C언어 프로그램을 작성해보자.for-loop 반복문을 사용하면 아주 쉽게 구현할 수 있다. Non-recursive 함수로 구현하기위에서는 main함수 안에서 구현했는데,별도의 함수로 만들면 활용성이 높다.그래서,아.. 더보기

반응형
LIST