본문 바로가기

분류 전체보기

(98)
[인프런|5강] C로 배우는 자료구조 | 전화번호부 v2.0 전화번호부 v2.0 전화번호부 v1.0(4강)에 더해 파일로 저장 및 로드, 알파벳 순 정렬 기능을 추가한다 자료구조는 v1.0과 동일하며 load, save 함수가 추가된다. #include .. #define CAPACITY 100 #define BUFFER_SIZE 100 char * names[CAPACITY]; char * numbers[CAPACITY]; int n = 0; void load(); void add(); void find(); void status(); void remove(); void save(); int main() { char buffer[BUFFER_SIZE]; while (1){ printf("$ "); scanf("%s", buffer); if (strcmp(comm..
[인프런|4강] C로 배우는 자료구조 | 전화번호부 v1.0 전화번호부 v1.0 위와 같이 동작되도록 전화번호부 프로그램을 만든다. add, find, status, delete 등의 동작 구현 코딩 이전에 어떤 자료구조로 저장할지 프로그램의 자료구조를 먼저 생각해야한다. - 어떤 데이터를 다루고 유지해야 하는지 생각 전화번호부 v1.0의 경우 1. 내부적으로 저장해야하는 데이터는 여러사람의 이름, 전화번호 char * 타입의 names[], numbers[]를 선언 전화번호의 경우 '-' 기호를 사용하며 0으로 시작하는 경우 정수형일때 0이 빠지므로 문제가 된다. 그래서 char 타입을 사용한다. #include .. #define CAPACITY 100 #define BUFFER_SIZE 100 char * names[CAPACITY]; char * numbe..
[인프런|3강] C로 배우는 자료구조 | 문자열 연습문제 문자열 연습문제 위와 같은 결과를 만드는게 목표 #define BUFFER_SIZE 20 int main(void) { char buffer[BUFFER_SIZE]; while(1) { printf("$ "); //scanf(buffer); scanf는 공백 문자 기준으로 끊기 때문에 공백을 포함한 문장에 쓸 수 없음 //gets(buffer); gets는buffer에 담을 수 있는 길이 상관없이 담는 문제가 있다. //fgets(buffer, BUFFER_SIZE, stdin); BUFFER_SIZE만큼 읽는다. 단, \n, buffer size 초과시 원하는 대로 반영이 제대 로 안됨 // buffer[strlen(buffer)-1] = '\0'; fgets를 쓸때 buffer[strlen(buffe..
[인프런|2강] C로 배우는 자료구조 | 문자열 문자열 char str[6]; str[0] = 'h'; str[1] = 'e'; str[2] = 'l'; str[3] = 'l'; str[4] = 'o'; str[5] = '\0'; 이런식인 경우 문자열에 끝에 '\0' 값을 넣어주지 않으면 제대로 동작하지 않는다. 문자열이 끝났는지 아닌지 알기 위해서 '\0' 써야한다. 단, char str[] = "hello"; char *str ="hello"; 과 같이 표현하는 경우 '\0'를 문자열 끝에 넣어주지 않아도 된다. 하지만 char *str ="hello"; 로 표현하는 경우 문자열 수정이 불가능하다하여 string literal이라고 한다. 엄밀하게 말하면 문자열 배열이 아닌 string literal이다. 사실 char str[] = "hello"..
[인프런|1강] C로 배우는 자료구조 | C언어 기초 문법 리뷰 1.C언어 기초 문법 리뷰 - 배열, 포인터, 문자열, 동적메모리할당 메모리 컴퓨터의 메모리는 데이터를 보관하는 장소 바이트(8bit) 단위로 주소가 지정 모든 변수는 주소를 가진다. 포인터: 메모리의 주소를 값으로 가지는 변수 type-name * variable-name; int * ptr; int c = 12; int *p; p = &c; // *p =>12, p=> 변수 c의 주소가 담김 int x=1, y=2; int * ip; ip = &x; y = *ip; *ip = 0; 포인터를 쓰는 이유: 데이터 할당을 더욱 유연하게 하기위해서 저장하려는 데이터 사이즈를 (배열 등에) 크게하기도 했다 작게하기도 하기 위해, 연결리스트 등 다른 자료구조에서도 데이터를 할당의 유연성을 위해 포인터와 배열 배..
[프로그래머스] 최댓값과 최솟값 programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 문제 "1 2 3 4"처럼 문자열 공백으로 구분된 숫자들이 저장되어 있을때, 이 숫자들 중 최솟값과 최댓값을 찾아서 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하기 입출력 예 나의 답 쉬운문제인데 레벨 2에 표시되어있다 나중에 1로 바뀔거 같다.
키리냐가 전통에 대해 생각해 보게 만든다. 읽다 보면 전통이라는 명분을 내세워 통치수단으로 쓴다는 생각밖에 안 들었다. 이렇게 저렇게 변명하지만 그의 이야기는 거짓 위에 만들어져 있고 지식은 오직 본인만이 알고 있으며 다른 이가 접근 못하게 한다. 더욱 웃기게 여겨진 것은 그는 배울 만큼 배웠어서 성별 구분이 의미 없다는 걸 알 텐데 체제 유지를 위해 불합리한 구조를 유지한다. 사실 이렇게 생각 들기도 자꾸 의문이 들고 좀 어려웠다. 초반에 전제가 유럽에 침략받아 케냐는 케냐식으로 발전을 못하고 유럽의 방식을 도입했고 그렇게만 발전했기에 내가 판단하는 기준도 지금의 기준이고 서구식 방식이기도 해서 이렇게 판단되는 게 맞나 의심되기도 했다. 케냐는 케냐의 방식으로 발전할 기회를 빼앗겼고 새로운 룰에 맞추어서 생존하..
첫 글 책 읽는걸 좋아하는 편이다. 어릴 때부터 나름 꾸준히 읽기는 했다. 욕심이 많았는지? 아니 꾸준히 욕심히 있어서 책을 다 못읽더라도 도서관에서 최대한도로 빌리기 일쑤였다. 그래도 책이라도 꾸준히 빌리다보니 만화책에서 시작했지만 보통 도서도 읽게 되고 어느 틈엔가는 같은 걸 읽어도 다른 사람은 아예 다른 관점으로 생각하는게 재밌다 생각해서 독서모임도 참여하게 되었다. 소설 같은 책은 좋아하지 않았으나 독서모임으로 가랑비에 옷 젖듯이 접하다니 어느 덧 소설 책에도 매력을 느끼게 되었다. 시작은 약간 책을 좋아하는 것에서 시작하여 왠지 저 책들을 다 빌려서 읽으면 지금보다 더 나아질까하는 욕심에 이 책 저 책 많이 빌리기만 하였지만 시간이 지나고나니 어느덧 책도 꾸준히 읽고 독서모임도 꾸준히 나가게 되었다. ..