전체 글 (64) 썸네일형 리스트형 [백준 10951번] C언어에서 EOF(End of File)이란 ? (1) EOF(End of File)은 데이터의 입력이 없으면 실행을 끝낸다는 뜻의 상수이다. 파일에 #define EOF (-1)라고 정의되어 있다. 표준 입출력 스트림 중에서도 파일을 입출력하고자 할 때 파일의 위치를 알기 위해 FILE 포인터로 파일에 접근하여 파일 데이터를 읽고 쓰기가 가능하다. 이 때 파일을 읽다가 파일의 끝을 만나면 EOF 값을 반환하고 데이터를 더이상 읽지 않는다. (2) 파일의 끝일 때 뿐만 아니라 키보드 입력의 끝을 알려줄 수도 있다. 키보드로 EOF를 실행하려면 윈도우 운영체제는 Ctrl + z 누르고 enter 키를 치면 EOF가 -1을 반환하고 키보드 입력을 더이상 받지 않는다. (3) 백준 10951번 #include int main(int argc, char *a.. [백준 1157번] 단어공부 (c언어) #include #include #include int main(int argc, char *argv[]){ char* str; char temp[1000001]; int alphabet[26] = {0,}; int i, flag, index, max, len; scanf("%s", &temp); str = (char*)malloc(strlen(temp)+1); strcpy(str, temp); len = strlen(str); for(i=0; i= 0){ //lower case ++alphabet[*(str+i)-97]; } if((*(str+i)-65) >= 0){ //upper case ++alphabet[*(str+i)-65]; } } max = alphabet[0]; index = 0; for(.. [머신러닝] 판다스(pandas) 패키지 1. 판다스(pandas)란? ▶ 판다스는 파이썬에서 데이터 처리를 위한 라이브러리로 열과 행으로 되어있는 데이터를 효율적으로 가공할 수 있는 기능을 제공한다. 판다스는 넘파이를 기반으로 만들어졌지만 넘파이보다 훨씬 유연하게 데이터 핸들링이 가능하다는 점에서 인기있는 라이브러리이다. 2. 파일을 Data Frame으로 로딩하기 ▶ 공공데이터포털, 오픈 API 등을 통해서 다양한 데이터를 구할 수가 있다. 이번 장에서는 캐글에 있는 타이타닉 탑승자 데이터 파일로 판다스를 활용해볼 것이다. ▶ 다음 링크로 들어가서 train.csv 파일을 다운받는다. https://www.kaggle.com/c/titanic/data?select=train.csv Titanic - Machine Learning from D.. [머신러닝] 넘파이(Numpy) 패키지 1. 넘파이(Numpy)란? ▶ 넘파이(Numpy)란 Numerical Python으로 파이썬에서 대규모의 다차원 배열을 다룰 때 쓰는 라이브러리이다. 머신러닝의 이론적 배경은 선형대수와 통계로 이루어져 있다. ▶파이썬에서 행렬과 선형대수를 다룰 때 대표적으로 쓰는 패키지가 넘파이이다. 반복문 없이 배열을 처리하기 때문에 대량의 배열 데이터 연산이 훨씬 더 빠르고 메모리를 효율적으로 사용한다. ▶넘파이는 c, c++기반의 타 프로그램과 데이터를 주고 받고, API를 호출해 쉽게 다루는 기능을 제공해 파이썬이 가지는 성능의 제약을 보완할 수도 있다. ▶ 많은 머신러닝 알고리즘이 넘파이 기반으로 되어 있기 때문에 넘파이를 이해하는 것은 파이썬 기반의 머신러닝을 이해하는 데 중요하다. 2. 모듈 사용하기 im.. [알고리즘] 점근적 분석 1. 점근적 분석의 필요성 알고리즘 설계에는 다양한 방법이 있다. 알고리즘이 얼마나 효율적인지 성능을 분석해야 할 때 점근적 분석이 필요하다. 물론 크기가 작은 문제는 알고리즘의 효율이 크게 중요하지 않다. 비효율적인 알고리즘도 무방하다고 할 수 있다. 하지만 크기가 충분히 큰 문제에서는 알고리즘 분석은 매우 중요하다. 즉 입력의 크기가 충분히 큰 경우에 대한 분석을 점근적 분석이라 한다. 알고리즘의 실행 시간, 필요한 메모리 크기, 통신 등등 자원이 얼마나 소모되는 지 분석한다. 2. 점근적 분석의 특징 점근적 분석은 입력의 크기에 따라 이 알고리즘의 실행시간이 얼마나 걸리는 지 분석한다. 입력 크기에 따른 실행시간을 나타낸 함수를 성장률이라고 한다. 위의 그래프처럼 100n + 300과 6n2의 성장.. [c언어] 메모리 구조 프로그램을 실행하면 해당 프로그램을 가져와 메모리에 올리게 된다. 운영체제는 프로그램이 사용할 메모리 영역을 크게 4가지 영역에 할당한다. 1. 코드(Code) 영역 - 기계어로 번역된 소스 코드를 저장하는 영역으로 흔히 text 영역이라고도 한다. - 프로그램 실행을 위한 모든 명령문들이 저장되어 있다. 2. 데이터(Data) 영역 - 전역 변수, 정적(static) 변수, 초기 문자열 상수, 초기 리터럴 상수가 할당되는 영역. - 프로그램 시작하면 할당하고, 프로그램 종료하면 메모리에서 해제한다. 3. 스택(Stack) 영역 - 함수 호출 시 생성되는 지역 변수, 지역 함수, 매개 변수가 저장된다. - 이는 컴파일할 때 크기를 결정한다. - 함수 호출이 완료되면 사라진다. 4. 힙(Heap.. [자료구조] 트리(tree) 1. 트리(tree)란? 계층적 형태의 자료구조를 뜻한다. 트리라고 부르는 이유는 나무를 거꾸로 엎어놓은 모양을 하고 있기 때문이다. 2. 용어 정리 (1) 노드(node) : 트리의 구성요소 (2) 루트(root) : 트리의 가장 윗 부분 노드 (3) 서브트리(subtree) : 트리 안에서 다시 어떤 노드를 루트로 정하고 그 자손으로 이루어진 트리 (4) 간선(edge) : 투르와 서브트리를 연결하는 선 (5) 부모(parent) : 어떤 노드에서 가지로 연결된 위쪽 노드 (6) 자식(child) : 어떤 노드로부터 가지로 연결된 아래쪽 노드 (7) 형제(sibling) : 같은 부모를 가지는 노드 (8) 조상(ancestor) : 어떤 노드에서 가지로 연결된 위쪽 노드 모두 (9) 자손(descen.. [자료구조] 이중연결리스트(Double Linked List) - 이중연결리스트는 앞 노드를 가리키는 rlink와 뒤 노드를 가리키는 llink 두 개의 링크가 더해진 구조이다. 이렇게 함으로써 양방향으로 검색이 가능해진다. - 이중연결리스트는 head라는 노드 포인터를 가지지 않고 데이터가 없는 빈 노드 구조체인 head를 가진다. head 구조체의 오른편에 리스트를 연결시킨다. 따라서 맨 처음 초기화 단계에서 head 구조체의 rlink와 llink 모두 head 자신을 가리킨다. //head 초기화 함수 void init(DListNode* head){ head->rlink = head; head->llink = head; } - 삽입할 때는 head 구조체의 오른쪽에 삽입할 것이다. //노드 삽입 함수 DListNode* insert_node(DListNod.. 이전 1 2 3 4 5 6 7 8 다음