전체 글

코딩하는 대학생에서 개발자까지
(C언어) 문자열 함수의 모든 것
1. 문자 입출력 함수 문자 입출력 함수는 함수 반환형이 int형이다. 그러므로 문자도 정수로 저장된다. int형으로 하는 이유는 EOF(end of file) 문자를 체크하기 위해서이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 #include int main() { int ch; while (1) { ch = getchar(); if (ch == EOF) break; putchar(ch); } return 0; } cs 2. 문자열 입출력 함수 띄어쓰기가 포함된 한 줄을 받고 싶을 때는 gets()를 사용해야 한다. 출력할 때는 puts()를 사용하면 된다. 1 2 3 4 5 6 7 8 9 #include int main() { char address[100]; printf("주소를 입력..
백준(S5) 1427번: 소트인사이드 (C언어 C11 C99)
코드를 보기 전에: 많은 사람들이 수를 입력 받았을때 각 자리를 어떻게 구하는지 고민을 할것이다. 일일이 나누기 그리고 나머지를 구하면서 각 자리를 구할수도 있지만, 1,000,000,000은 그렇게 하기는 너무 큰 수이다. 그러므로 문자열로 입력받는것도 방법이라고 알려주고 싶다. 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 #include #include int main() { char num[11] = { 0, }; // 최대가 1,000,000,000이므로, 문자열의 크기를 11로 잡았다. scanf("%s", num); // 문자열은 입력받을때 &을 적지 않아도 된다. int size = strlen(num); int ..
C언어 카운팅 정렬 단순정리 & 백준(S5) 수 정렬하기 (C언어 C11 C99)
정렬 알고리즘 중 가장 빠른 정렬. 정렬 함수의 속도는 O(N)이다. 지금까지 다른 함수들은 데이터를 위치를 바꿔가며 정렬했지만, 정렬 함수는 데이터의 크기를 기준으로 개수만 세면 되기 때문에 다른 정렬들보다 시간을 많이 아낄 수 있다. 1 2 3 4 5 6 7 8 9 for (int a = 0; a max) { max = numbers; } countings[numbers - 1]++; } cs 이렇게 입력을 하면서 바로 데이터의 크기를 기준으로 갯수를 셀 수 있다. 개수를 센 다음에는 밑에 나와있는 코딩처럼 데이터 크기를 저장한 배열을 출력하면 된다. 1 2 3 4 5 6 7 8 for (int a = 0; a
백준(S5) 2751번: 수 정렬하기 2 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 퀵 정렬 함수를 이용해서 문제를 풀 수 있다. 정렬 함수에는 많은 정렬이 있지만, 버블 정렬, 삽입 정렬은 배열 하나하나를 바꾸는 것이기 때문에 시간이 초과된다. 퀵 정렬 함수 정리:https://solution-is-here.tistory.com/30 정보) qsort 함수 (C언어 C11 C99) 정렬문제를 풀때는 보통 이중 반복문으로 쉽게 풀수 있으나, 배열의 크기와 숫자가 커지면 시간초과가 나온다. 그럴때는 qsort함수를 사용하면 된다. qsort함수는 퀵 정렬 함수라고도 불린다. stdlib solution-is-here.tistory.com 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2..
C언어 qsort 함수 (C언어 C11 C99)
정렬문제를 풀때는 보통 이중 반복문으로 쉽게 풀수 있으나, 배열의 크기와 숫자가 커지면 시간초과가 나온다. 그럴때는 qsort함수를 사용하면 된다. qsort함수는 퀵 정렬 함수라고도 불린다. stdlib.h를 헤더로 필요로 하고, qsort(정렬할 배열, 요소개수, 요소크기, 비교함수); 이렇게 구성된다. 1 qsort(num, sizeof(num) / sizeof(int), sizeof(int), compare); cs 비교함수는 오름차순으로 할때는 a>b일때는 return 양의 정수, a
백준(B1) 2750번: 수 정렬하기 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 정수가 음의 정수와 양의 정수로 이루어져있다는 사실만 알면 쉽게 풀수 있는 문제다. 필자는 이중반복문을 이용해, 오름차순으로 정리했다. 1 2 3 4 5 6 7 8 for (int a = -1000; a
코딩하는_대학생
코딩하는 대학생에서 개발자까지