분류 전체보기

코딩하는 대학생에서 개발자까지
백준(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
백준(S5) 1436번: 영화감독 숌 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 브루트포스의 대입하는 사고와 수학적 사고가 같이 필요한 문제였다. 666이 들어간 숫자를 찾으려면 1000으로 나눠서 나머지가 666이 나와야 한다. 6660같은 경우에는 1000으로 나눈 나머지가 666이지 않으므로, 수학적 사고도 필요하다. 이럴때는 나누기 10을 하면 된다. 코드: 1234567891011121314151617181920212223242526#include #include int main(){ int res = 665; int num; scanf("%d", &num); int a = 0; while (1) { if (a == num) { printf("%d", res); break; } res++; for (int i = 0; i
백준(S5) 4673번: 셀프넘버 (C언어 C11 C99)
코드를 보기전에: 나는 이 문제를 배열을 이용해 쉽게 풀었다. 배열을 0으로 초기화 시킨 뒤에 셀프 넘버 아닌 수에는 -1 저장하면 쉽게 구분할수 있다. 그리고 1, 10, 100, 1000의 자리 숫자 각각의 값을 구하는것도 중요한 문제였다 코드 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 38 39 40 41 42 43 44 #include int num[10000]; // 나는 문자열을 이용해 푸는 방법을 생각해봤다. int result(int x); int main() { int res; for (int a = 1; a
백준(S2) 11047번: 동전 0 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 그리디 알고리즘이다. 동전 문제는 그리디 알고리즘의 정말 단골 문제다. 나는 동전 문제를 풀때마다 입력된 값에서 큰 동전부터 빼도록 한다. Fullcode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include int coin[10]; int main() { int n, k; int cnt = 0; scanf("%d %d", &n, &k); for (int a = 0; a 0) // k가 0이 되면 끝나므로 굳이 break문을 만들필요가 없어졌다. { if (coin[a] > k) // 배열 값이 입력한 값보다 크면 다음 배열로 넘어가게 만들었다. a--; else { k -= coin[a]; // 입..
코딩하는_대학생
'분류 전체보기' 카테고리의 글 목록 (31 Page)