티스토리 뷰

반응형

수 찾기 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 173245 51820 34415 29.846%

문제

N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.

출력

M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.

예제 입력 1 복사

5
4 1 5 2 3
5
1 3 7 9 5

예제 출력 1 복사

1
1
0
0
1
#include <iostream>

using namespace std;

#include <iostream>

using namespace std;

void quickSort(int arr[], int L, int R) {
	int left = L, right = R;
	int pivot = arr[(L + R) / 2];    // pivot 설정 (가운데) 
	int temp;
	do
	{
		while (arr[left] < pivot)    // left가 pivot보다 큰 값을 만나거나 pivot을 만날 때까지 
			left++;
		while (arr[right] > pivot)    // right가 pivot보다 작은 값을 만나거나 pivot을 만날 때까지 
			right--;
		if (left <= right)    // left가 right보다 왼쪽에 있다면 교환 
		{
			temp = arr[left];
			arr[left] = arr[right];
			arr[right] = temp;
			/*left 오른쪽으로 한칸, right 왼쪽으로 한칸 이동*/
			left++;
			right--;
		}
	} while (left <= right);    // left가 right 보다 오른쪽에 있을 때까지 반복 

  /* recursion */
	if (L < right)
		quickSort(arr, L, right);    // 왼쪽 배열 재귀적으로 반복 

	if (left < R)
		quickSort(arr, left, R);    // 오른쪽 배열 재귀적으로 반복 
}


int binary(int arr[], int low,int high,int x)
{
	int mid = 0;
	if (low > high)
	{
		printf("0\n");
		return 0;
	}
	else
		mid = (low + high) / 2;
	
	if (x == arr[mid])
	{
		printf("1\n");
		return 1;
	}
	else if (x<arr[mid])
		return binary(arr, low, mid - 1, x);
	else
		return binary(arr, mid+1, high, x);
}


int main(void)
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);
	int n, m,k;
	int arr1[100001];
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> arr1[i];
	quickSort(arr1,0, n-1);

	cin >> m;
	for (int i = 0; i < m; i++)
	{
		cin >> k;
		binary(arr1, 0, n - 1, k);
			
	}

	return 0;
}

 

 

cin.tie(NULL)이랑 ios_base::sync_with_stdio(false);

이거 안하면 시간초과난다.

 

이거때문에 몇번을 했다.

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함
반응형