반응형
주어진 10개의 수 중 가장 큰 값을 찾아내는 문제다. 어렵진 않지만, 정렬 알고리즘은 알고 있어야 한다. 파이썬이라면 sort() 함수로 한 줄에 끝나지만 C로는 직접 정렬을 구현해줘야 한다. 구현하기 쉬운 버블 정렬을 사용했다. 10개의 수를 오름차순으로 정렬한 후, 가장 마지막 수를 출력해주면 된다.
문제
10개의 수를 입력 받아, 그 중에서 가장 큰 수를 출력하는 프로그램을 작성하라. |
풀이
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 | #include <stdio.h> int bubbleSort(int a[]) { int i, j, t, temp; for (i = 9; i > 0; i--) { for (j = 0; j < i; j++) { if (a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } int main() { int tc; int numBox[10]; scanf("%d", &tc); for (int i = 0; i < tc; i++) { for (int k = 0; k < 10; k++) { scanf("%d", &numBox[k]); } bubbleSort(numBox); printf("#%d %d\n", i + 1, numBox[9]); } return 0; } | cs |
먼저 버블 정렬 함수를 만든다. 10개의 숫자라고 문제에서 주어졌기 때문에 파라미터에는 배열만 입력한다.
실제 버블 정렬 코드를 구현한다. 10개의 숫자가 있기 때문에 9번 루프를 돌린다. 배열의 각각의 요소에 대해 그 다음 요소와 크기를 비교하고, 앞의 요소가 더 작으면 뒤의 요소와 위치를 교환한다.
메인 함수에서 테스트 케이스의 값을 먼저 입력받는다.
scanf로 배열의 각 주소에 10개의 값을 입력해준다. 그리고 버블 정렬을 돌린다.
마지막 인덱스의 요소를 출력한다.
테스트케이스의 값만큼 반복한다.
반응형
'DEVELOP > Algorithm' 카테고리의 다른 글
[C] SW Expert Academy 문제풀이 :: 1926번 (0) | 2018.09.06 |
---|---|
[C] SW Expert Academy 문제풀이 :: 2007번 (0) | 2018.09.05 |
[Python] 백준 알고리즘 문제풀이 :: 2108번 (0) | 2018.09.03 |
[Python] 백준 알고리즘 문제풀이 :: 2775번 (0) | 2018.09.02 |
[C] SW Expert Academy 문제풀이 :: 2070번 (0) | 2018.08.31 |
[C] SW Expert Academy 문제풀이 :: 2072번 (0) | 2018.08.30 |
[C] SW Expert Academy 문제풀이 :: 2071번 (0) | 2018.08.29 |
[Python] 백준 알고리즘 문제풀이 :: 4673번 (0) | 2018.08.09 |