/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>//나머지 출력하고 나머지 출력하고 계속 반복
void rec(int n)
{
if(n==0) return; //(3)반반 가서 마지막 1을 출력하기 위한 과정
rec(n/2); //(1)n절반까지 가서
printf("%d",n%2);//(2)거기서 부터 그거의 나머지들을 출력하기
}
int main() ----1920 재귀함수 2진수 변환
{
int n;
scanf("%d",&n);
if(n==0)
{
printf("0");
}
rec(n);
}
순차 탐색
이진 탐색 (이분탐색) binary search
정렬이 되어 있는 상태에서
*/
/*
#include <stdio.h>
int arr[10]={1,3,5,7,9,11,13,15,17,19};
// s ~ e 중에 k값의 위치 리턴
int bs(int s, int e, int k)
{
int mid=(s+e)/2; //가운데 위치
if(s>e) // 존재하지 않을 때
{
return -1;
}
if(arr[mid]==k)
{
return mid;
}
else if(arr[mid]<k)
{
bs(mid+1,e,k);
}
else
{
bs(s,mid-1,k);
}
}
int main()
{
int k;
scanf("%d",&k);
printf("k의 위치 : %d",bs(0,9,k));
return 0;
}
*/
/*
#include <stdio.h>
int a[10000001]={};
int bs(int s,int e, int x)
{
int mid=(s+e)/2;
if(s>e)
{
return -1;
}
else if(a[mid]==x)
{
return mid;
}
else if(a[mid]<x)
{
bs(mid+1,e,x);
}
else
{
bs(s,mid-1,x); -----3002 이진 탐색 기억력 테스트 3
}
}
int main()
{
int n,m,i,x;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%d",&x);
printf("%d ",bs(1,n,x));
}
return 0;
}
*/
#include <stdio.h>
int a[100001]={};
int bs(int s,int e,int k,int n)
{
int mid=(s+e)/2;
if(s>e)
{
return n+1;
}
if(a[mid]<k)
{
bs(mid+1,e,k);
}
else
{
bs(s,mid,k);
}
}
// 1 3 5 7 7 7 7 7 7
int main()
{
int n,k,i,a[100001];
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",a[i]);
}
printf("%d",bs(1,n,k,n));
return 0;
}
수우우우우우우우욱제에에에에
-마지막에 못푼 2633 풀기