[자료구조 & 알고리즘] C언어 더블 포인터 뜯어보기
·
[자료구조 & 알고리즘]
이중 포인터란 포인터 변수의 주소를 값으로 가지는 포인터 변수함수에 이중포인터를 사용하는 이유void lls_create_stack(linkedliststack** stack){ (*stack) = (linkedliststack*)malloc(sizeof(linkedliststack)); (*stack)->list = NULL; (*stack)->top = NULL;}stack은 linkedliststack 구조체를 가리키는 주소를 담은 포인터 변수의 주소를 담은 인자이다.최초 선언 후 아직 위 함수를 거치지 않은 linkedliststack 구조체 자료형의 포인터 변수는 아무 주소도 가리키지 않는 초기값의 형태를 띄고 있다.포인터 변수에게 새로운 스택 주소를 알려주기 위해선 주소를 할당해주어야한다.여기..
[SQL] 데이터베이스의 개념과 기본 사용 방법 (view, stored procedure, select, where 등)
·
[SQL]
데이터베이스: 데이터의 집합DBMS: 데이터 관리 소프트웨어Database Management SystemDB는 여러명이 동시에 공유하고 접근 가능해야함계층형 DBMS트리형태변경하기 어려움여러 단계를 거쳐야 목표 데이터에 접근 가능현재 사용 X망형 DBMS계층형과 비슷하지만 하위 구성들끼리도 연결된 형태현재 거의 사용 X관계형 DBMSRDBMS(Relational DBMS) 라고 부름테이블이라는 최소단위로 구성되며, 열과 행으로 이루어짐표랑 비슷함모든 데이터가 테이블에 저장됨SQL은 RDBMS에서 사용되는 언어DB모델링은 테이블 구조를 미리 설계하는 과정프로젝트 진행 시 대부분 폭포수 모델(waterfall model)을 주로 사용DB는 시스템 설계 단계에 해당폭포수 모델프로젝트 계획업무 분석시스템 설계..
리스트 ADT / SLL / DLL / CDLL
·
[자료구조 & 알고리즘]
리스트 ADT목록 형태로 이루어진 자료구조개별 요소 = 노드첫번째 노드 → Head, 마지막 노드 → Tail리스트와 배열의 차이배열 - 생성 시 반드시 크기를 지정해야한다.리스트 - 생성 시 크기를 지정하지 않아도 되며 길이 추가 및 축소가 자유롭다SLL(Singly Linked List)한 방향으로만 연결된 링크드 리스트구조체를 선언하여 이용하며 한 구조체를 한 노드라고 칭함Linked List에 필요한 연산노드 생성노드 추가노드 탐색노드 삭제노드 삽입더블 포인터를 사용하는 이유함수 안에서 head의 주소를 다른 주소로 할당할 경우 단순히 포인터가 가지고 있는 주소값만 전달 시 그 값을 복사해서 바꾸기 때문에 포인터가 가지고 있는 원본 주소값은 바뀌지 않는다.더블 포인터로 포인터 변수의 주소를 복사하..
[자료구조 & 알고리즘] C언어의 포인터(pointer), 구조체(structure), 힙(heap), 스택(stack)
·
[자료구조 & 알고리즘]
포인터개념자료의 메모리 주소를 담는 변수생성방법자료형* 포인터변수;int* ptr;float* ptrint a; int* ptr = &a;연산자, 배열과의 관계성포인터에 ‘++’ 연산자 사용 시 해당 자료형의 바이트 수 만큼 주소값이 증가한다.배열을 선언 후 배열의 주소를 포인터 변수에 저장하면 포인터 변수는 배열의 첫번째 값의 주소를 갖는다.위 두가지를 활용하면 ‘++’, ‘—’ 연산자를 활용해 배열을 탐색할 수 있다.구조체개념사용자가 지정한 데이터 타입을 조합해서 만드는 사용자 정의 데이터 형식사용방법 (2가지)struct MyPoint { int a; int b; };선언방법struct Mypoint Point = {30,40}; struct Mypoint* ptr = Point;데이터 접근방법Po..
Stanley 경로추정 알고리즘
·
[기타]
Stanley 알고리즘은 차량 앞바퀴를 기준으로 한다목표지점까지의 오차 + 차량의 헤딩방향의 오차도 함께 계산 ​차량의 목표지점까지의 오차를 제거----------------------------------------------------------------------------------------------------------------------------------대표사진 삭제사진 설명을 입력하세요.각 선이 뜻하는 의미 - 속도 별 그래프세로축 - 조향각(각도)가로축 - 코스에서 떨어진 정도(m)트랙과 떨어진 거리가 크면 클수록, 속도가 빠르면 느리면 느릴수록 조향각은 크다 ​조향각 = 차량의 헤딩이 코스와 틀어진 각도 + 차량과 경로까지의 거리 차이------------------------..
[데이터 분석] Pandas의 기본 개념과 자주 쓰이는 API들
·
[데이터 분석]
판다스는 파이썬에서 데이터 처리를 위한 가장 인기있는 데이터 처리 라이브러리대부분의 데이터 세트는 2차원즉 행, 열로 구성되어 있다판다스는 2차원 구조의 최적화 되어있다정형 데이터와 궁합이 좋다집계성, 시각화와의 연계, 빠른 성능Numpy 기반판다스의 주요 구성 요소DataFrame - 컬럼과 로우로 구성된 2차원 데이터 셋 즉 shape(n,n)Series - 1개의 컬럼 값으로만 구성된 1차원 데이터 셋 - 즉 shape (n,)Index - 데이터프레임/시리즈의 고유한 Key값 객체기본 APIread_csv() - csv 파일을 읽어서 데이터프레임으로 만들 수 있는 apihead() - 안에 들어가는 숫자 만큼의 상위 데이터를 보여줌tail() - 안에 들어가는 숫자 만큼의 하위 데이터를 보여줌sh..
[데이터 분석] Numpy의 ndarray 객체와 자주 사용하는 메서드
·
[데이터 분석]
ndarray: n차원(Dimension) 배열(Array) 객체1차원 배열: [1,2,3,4]2차원 배열: 1차원의 요소가 여러개 있는 형태 [[1,2,3,4][1,2,3,4]]3차원 배열: 2차원 배열이 많으면 3차원 배열ndarray 생성Numpy 모듈의 array()로 함수 생성인자로 주로 파이썬 list 또는 ndarray 입력import numpy as nparray1 = np.array([1,2,3])array2 = np.array([[1,2,3],[2,3,4]])##array1 = [1,2,3] -> 2D Arrayarray2 = [[1,2,3], [2,3,4]]ndarray 형태와 차원array 차원 shapearray = [1,2,3]1array.shape = (3,)array = ..
[데이터 분석] 데이터 분석의 개념 및 pandas를 사용한 csv 파일 취급
·
[데이터 분석]
데이터 분석이란데이터 분석과 데이터 과학데이터 분석: 유용한 정보를 발견하고 결론을 유추하거나, 의사 결정을 돕기 위해 데이터를 조사, 정제, 변환, 모델링하는 과정데이터 분석과 함께 자주 언급되는 용어는 데이터 과학이다데이터 과학과 데이터 분석을 동일하게 취급하지만 데이터 과학은 통계학, 데이터 분석, 머신러닝, 데이터 마이닝들을 아우르는 큰 개념이다데이터 분석은 올바른 의사 결정을 돕기 위한 통찰을 제공하는데 초점을 맞추고 데이터 과학은 한 걸음 더 나아가 문제 해결을 위한 최선의 솔루션을 만드는데 초점을 맞춘다특징 데이터 분석 데이터 과학범주비교적 소규모대규모목표의사 결정을 위한 통찰 제공문제 해결을 위한 솔루션 제공주요 기술컴퓨터 과학, 통계학, 시각화컴퓨터 과학, 통계학, 머신러닝 , 인공지능빅..
[Git&GitHub] CLI 환경에 사용되는 기초 git 명령어
·
[Git&GitHub]
CLI를 사용하는 이유Git을 이해하고 더 잘 사용하기 위해선 CLI환경을 익히는 것이 좋다Git의 모든 기능을 사용하기 위해선 CLI를 사용하여야하며 리눅스 서버 같은 실행환경에선 GUI를 사용할 수 없는 경우도 있다CLI 프로그램을 능숙하게 사용하게 되면 GUI 프로그램보다 다양한 기능, 향상된 작업 속도를 얻을 수 있다CLI 유의점CLI에 표시되는 영어 표시들을 반드시 읽어야 함Git BashGit Bash 및 CLI 명령어 파악$ 기호와 윗줄에 표시된 경로 등을 합쳐서 프롬프트(prompt)라고 한다이는 가장 기본적인 정보를 보여준다기본적으로 Git Bash를 시작하면 현재 폴더는 사용자의 홈 폴더에서 시작한다기본적인 Git Bash 명령어들pwd 현재 폴더 위치 확인ls -a현재 폴더의 파일 목..
[파이썬] 가비지 컬렉터란?
·
[파이썬]
가비지 컬렉터__str__과 같이 del()이라는 함수를 작성하면 함수가 호출될 때 생성자와 함께 호출된다이 함수의 기능은 더 이상 사용하지 않는 변수를 메모리에서 지워주는 역할로 변수에 값을 저장하지 않으면 이는 더 이상 값을 사용하지 않을 것이라 판단하여 메모리에서 지워버린다class Test: def __init__(self, name): self.name = name print('{}'.format(self.name)) def __del__(self): print('Del')Test('a')Test('b')Test('c')a = Test('a')b = Test('b')c = Test('c')#result 변수에 저장되지 않으면 바로 삭제, ..