#667함수로 Lower Bound 위치 리턴하기
기초
⏱ 시간 제한: 5초|💾 메모리 제한: 128 MB
문제 설명
데이터가 오름차순으로 저장되어있는 배열에서 어떤 값보다 크거나 같은 값이 처음 나타나는 위치를 출력하세요. (저장되어있는 값들이 입력된 값보다 모두 작다면 저장되어있는 데이터개수+1을 출력합니다.)
단, 함수형 문제이므로 함수 lower_bound()만 작성하여 제출하시오.
예를 들어 1번 자리부터 10개의 데이터가 오름차순으로 저장되어있는 배열 2 3 5 7 9 11 13 17 19 23 에서 값 6 보다 크거나 같은 값이 처음 나타나는 위치는 4 입니다. 값 24 는 저장되어있는 모든 값들보다 크므로 11 을 출력합니다.
참고 lower_bound()는 이미 정렬 되어있는 데이터의 중간에
미리 작성된 코드
아래 코드에서 주석 위치에 함수를 작성하여 제출하세요.
C 언어
c
#include
int n, k, d[1010];
/* 여기에 함수를 작성하세요 */
int main()
{scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", lower_bound(k));}Python
python
# 여기에 함수를 작성하세요
n = int(input())
d = [0] + list(map(int, input().split()))
k = int(input())
print(lower_bound(d, n, k))입력 설명
첫 줄에 데이터의 개수(n)가 입력된다. 두 번째 줄에 n개의 오름차순 데이터(ki)가 공백을 두고 입력된다. 세 번째 줄에 찾기를 수행할 값(k)이 입력된다. (1 <= n <= 1000) (-2147483648 <= ki,k <= 2147483647)
출력 설명
입력된 값보다 크거나 같은 값이 저장되어있는 처음 위치를 출력합니다. (입력된 값이 저장되어있는 모든 값보다 크면 n+1 을 출력합니다.)
예제
입력 1
10 2 3 5 7 9 11 13 17 19 23 6
출력 1
4
입력 2
10 2 3 5 7 9 11 13 17 19 23 24
출력 2
11