문제 번호 1587. -- 데이터구조 5월 10일 - 1번

1587: 데이터구조 5월 10일 - 1번

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 211  해결 문제 수: 60
[제출][채점 상황 열람][게시판]

문제 설명

#include <stdio.h>

int pivot_left = -999;
int pivot_right = -999;

void quick_sort(int nums[], int start, int end, int real_size, int pivot_value) {

	/*
	    인수:
		   nums : quick sort를 수행할 배열
		   start : 시작 인덱스
		   end : 마지막 인덱스
		   read_size : nums의 크기
		   pivot_value : 자세한 설명은 아래 참조,

		인수로 주어진 pivot_value가 pivot인 경우, 
		이 pivot이 자기 자리를 찾아간 직후, (하위 quick sort들을 실행하기 직전에)
		왼쪽과 오른쪽에 있는 숫자를
		전역변수 pivot_left와 pivot_right에 저장하시오.

		예를 들어,
		30, 40, 50, 20, 10 이 quick sort 대상이고
		pivot_value = 30으로 주어진 경우,

		30이 제자리를 찾아간 직후는 (다음 번 quick sort를 시행하기 직전 상황)
		20 10 (30) 50 40 이 된다.

		이때,
		pivot_left = 10
		pivot_right = 50 을 저장하면 된다.
	
		단, pivot_value != 30인 상황에서는 pivot_left, pivot_right을 변경하지 않는다.
		
	*/
}

//--------------- 이하로는 수정금지 -------------------------------

int main(void) {

	int i;
	int pivot = 0;
	int nums[10] = { 0 };


	for (i = 0; i < 10; i++) {
		scanf("%d", &nums[i]);
	}
	scanf("%d", &pivot);

	quick_sort(nums, 0, 9, 10, pivot);
	printf("%d %d", pivot_left, pivot_right);

	return 0;
}

입력

출력

입력 예시

30 40 50 20 10 1 2 3 4 5 30

출력 예시

2 50

도움말

출처

[제출][채점 상황 열람]