나동빈님의 실전 알고리즘 강좌(Algorithm Programming Tutorial)를 바탕으로 학습한 내용을 정리한 포스트입니다.
실습 코드는 WebKit’s style guide를 따라 C언어로 작성되었습니다.
개인적으로 학습하며 작성한 포스트이기 때문에 오류가 있을 수 있습니다. 잘못된 내용이 있다면 댓글로 알려주세요.
백준 2752번 - 세수정렬
링크: https://www.acmicpc.net/problem/2752
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
| #include <stdio.h>
int array[3];
int main(void) { int i, j, min, index, temp;
for (i = 0; i < 3; ++i) { scanf("%d", &array[i]); }
for (i = 0; i < 3; ++i) { min = 1000001; for (j = i; j < 3; ++j) { if (array[j] < min) { min = array[j]; index = j; } } temp = array[i]; array[i] = array[index]; array[index] = temp; }
for (i = 0; i < 3; ++i) printf("%d ", array[i]);
return 0; }
|
백준 2750 - 수 정렬하기
링크: https://www.acmicpc.net/problem/2750
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
| #include <stdio.h>
int array[1001];
int main(void) { int number, i, j, min, index, temp; scanf("%d", &number);
for (i = 0; i < number; ++i) { scanf("%d", &array[i]); }
for (i = 0; i < number; ++i) { min = 1001; for (j = i; j < number; ++j) { if (array[j] < min) { min = array[j]; index = j; } } temp = array[i]; array[i] = array[index]; array[index] = temp; }
for (i = 0; i < number; ++i) printf("%d ", array[i]);
return 0; }
|
백준 2751 - 수 정렬하기2
링크: https://www.acmicpc.net/problem/2751
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 45 46 47
| #include <stdio.h>
int array[1000001];
void quickSort(int* data, int pos_start, int pos_end) { int mLeft = pos_start, mRight = pos_end; int pivot = data[(pos_start + pos_end) / 2]; int temp;
while (mLeft <= mRight) { while (pivot > data[mLeft]) mLeft++; while (pivot < data[mRight]) mRight--;
if (mLeft <= mRight) { temp = data[mLeft]; data[mLeft] = data[mRight]; data[mRight] = temp; mLeft++, mRight--; } }
if (pos_start < mRight) quickSort(data, pos_start, mRight); if (mLeft < pos_end) quickSort(data, mLeft, pos_end); }
int main(void) { int number, i;
scanf("%d", &number);
for (i = 0; i < number; ++i) { scanf("%d", &array[i]); }
quickSort(array, 0, number - 1);
for (i = 0; i < number; ++i) printf("%d\n", array[i]);
return 0; }
|