[C언어 코드업 문제풀이] CodeUp 1569 : [기초-함수작성] 함수로 배열의 최대값 위치 리턴하기 2

코드업 1569번 함수로 배열의 최대값 위치 리턴하기 2 문제 풀이 해답입니다.

 

1. 문제 설명

 

데이터가 오름차순으로 저장되어있는 배열에서
원하는 데이터가 저장되어있는 가장 처음 위치를 출력하시오.
(원하는 데이터가 저장되어있지 않은 경우 –1을 출력한다.)

단, 함수형 문제이므로 함수 findi()만 작성하여 제출하시오.

예를 들어 1번 자리부터 10개의 데이터가 오름차순으로 저장되어있는 배열 
2 3 5 7 11 13 17 19 23 27 에서
값 11 의 위치는 5 이다.
값 12 는 저장되어있지 않으므로 –1을 출력한다.


[함수형 문제란??]
함수형 문제는 기본적인 main() 등은 미리 작성되어 있습니다.
미리 작성되어 있는 프로그램은 다음과 같습니다.

미리 작성된 프로그램을 복사해 붙여 넣은 후 함수 부분을 설계하여 작성해 넣고,
테스트 한 후, 함수 부분만 제출하세요.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
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", findi(k));
}

 

2. 입력

 

첫 줄에 데이터의 개수(n)가 입력된다.
두 번째 줄에 n개의 오름차순 데이터(ki)가 공백을 두고 입력된다.
세 번째 줄에 찾기를 수행할 값(k)이 입력된다.
(1 <= n <= 1000)
(-2147483648 <= ki,k <= 2147483647)

 

3. 출력

 

입력된 값이 저장된 위치를 출력한다.
(입력된 값이 저장되어있지 않으면 –1 을 출력한다.)

 

 

4. 입력 예시

 

5

1 3 5 7 9

3

 

5. 출력 예시

 

2

 

6. 문제 풀이

 

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
#include <stdio.h>
 
int n, k, d[1010];
int findi(int k) {
    for (int i = 1; i <= n; i++) {
        if (d[i] == k) {
            return i;
            break;
        }
    }
    return -1;
 
}
 
int main()
{
  scanf("%d"&n);
 
  for(int i=1; i<=n; i++)
    scanf("%d"&d[i]);
 
  scanf("%d"&k);
 
  printf("%d\n", findi(k));
}

댓글()