Baekjoon Online

[C] 백준 2562번_최댓값

dalgorithm 2021. 1. 8. 15:59
728x90

출처: www.acmicpc.net/problem/2562

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

최댓값 성공출처분류

시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 65681 32028 28494 49.557%

문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

입력

첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.

출력

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.

예제 입력 1

3

29

38

12

57

74

40

85

61

예제 출력 1

85

8

 


C언어에서 가장 자주 나오고 기본이 되는 문제라고 생각한다. 

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓갓을 찾고 그 최댓값이 몇번째수인지를 구하는 프로그램인데

배열에 들어간 수를 차례대로 비교해가면서  어떤게 최댓값인지 확인하고 그 위치를 확인해야한다.

 

먼저 반복문에서 입력하는 값을 input, 몇 번째수인지 표시하는 값을 index, 그리고 최댓값은 max로 변수를 선언한 뒤,

반복문에서 입력하는 값들을 배열 arr[9]에 넣어준다.

 

최댓값은 처음에 arr[0]으로 설정하고,  반복문안의 조건문에서 배열 arr[i]의 i값을 차례로 증가시켜 어떤게 더 큰지

비교를 해보면 된다. 그리고 더 클 경우에는 index값을 증가시켜주고 작을 경우에는 반복문을 이어나가면 된다.

 

모든 과정을 거치고 나서는 최댓값과 그 값이 몇 번째 수인지 출력하면 끝난다. 

.

어떻게 돌아가는지만 알면 매우 쉽게 풀리는 문제였다. C언어를 배우는 초기에 다뤘던 문제로 기억한다.  

 

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 main(void)
{
  
  int input, index, max;
  int arr[9];
  
  for(int i=0; i<9;i++){
      scanf("%d",&input);
      arr[i] = input;
  }
  
  index=1;
  max=arr[0];
  
  for(int i=0; i<9;i++){
      if(max<arr[i]){
          max = arr[i];
          index = (int)i+1;
      }
  }
  
  printf("%d\n%d",max,index);
}
cs

 

 

 

728x90