프로그래밍/개발 35

vim사용법

[커서이동] h 좌 j 하 k 상 l 우 e 오른쪽 한 단어 끝부분 w 오른쪽 한 단어 앞부분 b 왼쪽 한 단어 앞부분 Enter 한행 아래로 커서이동 Backspace 한 문자 왼쪽으로 커서이동 SpaceBar 한문자 오른쪽으로 커서이동 H M L 화면 맨위, 중간, 아래로 ^ $ 행의 맨 왼쪽, 오른쪽으로 커서 이동 [문자 삽입] i a 커서 왼쪽 오른쪽 문자 삽입 [텍스트 변경 삭제] cw 단어변경 x 커서가 있는 문자 삭제 dw 현재 커서 한 단어 삭제 dd 커서가 있는 라인 삭제 yy 커서 줄 복사 p 붙여넣기 v 블록 설정

추상 자료형과 리스트사용

2019.01.05. 추상자료형(Abstract Data Type)이란 어떠한 기능이 무엇인가를 나타내는것이다 내가 이해한 바로는 어떤 기능을 수행하는데 필요한 함수들을 나타내는것 같다. 자료구조 리스트는 두가지로 나뉜다. - 순차 리스트: 배열을 기반으로 구현된 리스트 - 연결 리스트: 메모리의 동적 할당을 기반으로 구현된 리스트 먼저 현재 공부하는 책에서 배열 리스트를 만드려하고 리스트 자료구조 ADT는 다음을 정의했다. -ListInit: 리스트의 주소값을 인자로 전달 -LInsert: 리스트에 데이터를 저장 -LFirst: 첫번째 데이터를 저장 -LNext: 참조된 데이터 다음 데이터를 메모리에 저장 -LRemove: 마지막 반환 데이터를 삭제 -LCount: 리스트에 저장되있는 데이터 수 반환 ..

재귀 하노이탑

2019.01.04. 하노이탑은 막대 3개가 있고 크기가 다른 원 N개 가 있다. 반지름이 작은우너은 항상 반지름이 자신보다 큰원보다 위에있어야 된다. 이 규칙에 따라 막대 하나에 크기가 다른 원 3개를 껴놓고 다른 막대로 모든 원을 옮기는 것이다. ex) A,B,C라는 막대에 반지름 1,2,3인 3개의 원이 있을때 과정이다. A B C 1 2 3 A B C 3 2 1 A B C 3 1 2 A B C 1 3 2 A B C 1 2 3 A B C 1 2 3 다음과 같이 진행될때 만약 원이 4개가 있으면 어떻게 될까? ex) A B C 1 2 3 4 A B C 4 1 2 3 A B C 1 4 2 3 A B C 1 2 3 4 위와 같이 된다. 123을 이동하는 방법은 위에 언급한 방법과 같기 때문에 반복되는 부..

재귀 팩토리얼 피보나치 구현

2019.01.03. 먼저 책에서는 main함수에서 Recursive함수를 계속 호출하는것으로 재귀함수의 개념에 대해서 설명해 주었다. 재귀함수에서 중요한것은 탈출 조건이다. 이를 응용하여 가장 기본적인 재귀함수 의 예시인 1) 팩토리얼 2) 피보나치 수열 3) 하노이 탑 들의 코드를 짜보고 구현해보고자 하였다. 먼저 팩토리얼은 다음과 같다 0! = 1 1! = 1 2! = 2 3! = 6 4! =24 직접 써보면서 반복되는 부분을 확인하고 반환하기 전에 자기자신을 곱해주는 형식으로 만들어주었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #define _CRT_SECURE_NO_WARNINGS #include int mai..

순차 탐색, 이진 탐색 시간복잡도

2019.01.01. 속도에 해당하는 알고리즘의 수행시간을 분석결과를 시간복잡도 메모리 사용량에 대한 분석결과를 공간복잡도 라고 한다고 한다. 시간복잡도의 경우 최악의 경우를 기준으로 발생하는 연산의 횟수 라고 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #define _CRT_SECURE_NO_WARNINGS #include int Findnum(int arr[], int len, int target); int main() { int arr[] = {1, 2 , 3, 4, 5}; int idx; int num; scanf("%d", &num); idx = Fi..