rueki

백준 2562번 : 최댓값(C/C++) 본문

C, C++ 문제풀이

백준 2562번 : 최댓값(C/C++)

륵기 2019. 6. 28. 10:54
728x90
반응형

1차원 배열에 관한 문제이지만 문제의 중요한 포인트는 비교라는 점이다.

문제를 살펴 보자.

1. 배열에 숫자를 입력받는다.

2. 최대값을 찾는다.

3. 찾은 최대값이 있는 배열의 순서를 출력한다.

 

푸는 과정을 이렇게 3단계로 나눌 수 있겠다.

여기서 최대값을 찾을 때 최대값을 찾는 함수를 선언해줄 것이다.

풀기 전에 입출력 값부터 예시로 보자.

#include <iostream>
#define N 9 // 자연수 갯수가 9개로 문제에 선언되었음 
using namespace std;

int arr[N]; // 배열 선언 


int getMax(){ //최대값을 찾는 함수 
	int max = 0;
	int index = 0;
	
	for(int i = 0;i<sizeof(arr)/sizeof(int);i++){
		if(arr[i]>=max){ // 첫 최대값을 arr[0]으로 가정하고 배열 원소 각각 비교교 
			max= arr[i]; 
			index = i; // 최대값이 위치해있는 배열의 순서 출력 목적 변수 
		}
	}
	return index;
}

int main(){
	int n;
	
	
		
	for(int i = 0;i<N;i++){
		cin>>arr[i];
	}
	int index = getMax();
	cout<<arr[index]<<endl; //최대값 출력 
	cout<<index+1; // 위치 출력 (i가 0부터시작이여서 +1을 해주었다.) 
	return 0;
}
728x90
반응형
Comments