프로그래밍/CodeUp
CodeUp[Q_2633] : Lower Bound
조원일
2020. 4. 10. 18:08
728x90
1. 문제
https://codeup.kr/problem.php?id=2633
Lower Bound
첫 줄에 한 정수 $n$과 찾고자 하는 값 $k$가 공백으로 구분되어 입력되고, 둘째 줄에 $n$개의 정수가 공백으로 구분되어 입력된다. (단, $2 <= n <= 100,000$ , 각 원소의 크기는 $100,000,000$을 넘지 않는다.)
codeup.kr
[출처 : 코드업(https://codeup.kr/)]
이번에는 오른차순으로 정렬되어 있는 n개의 정수 배열중 처음으로 k이상인 수가 나오는 위치를 찾는 문제입니다.
출제 의도는 잘 모르겠지만 이번 문제는 배열을 만들지 않고 푸는 방법으로 코딩을 했습니다.
2. 풀이방법
STEP 1. 각 배열의 값을 받을때마다 k이상인지 확인
3. 해답
#include <stdio.h>
int main() {
int n, k, p = -1;
int tmp = 0;
scanf("%d %d", &n, &k);
for (int i = 0; i < n; i++) {
scanf("%d", &tmp);
// 처음으로 k보다 큰 수가 나오면
if (tmp >= k && p == -1) p = i + 1;
}
if (p == -1) p = n + 1;
printf("%d", p);
return 0;
}