IT 프로그래밍/백준

[C++] 백준 2562 최댓값

기술1 2024. 3. 16. 22:00
반응형

https://www.acmicpc.net/problem/2562

 

2562번: 최댓값

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

www.acmicpc.net

풀이


#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
	using namespace std;
	
	
	vector<double>data(9);

	for (int i = 0; i < 9; i++)
	{
		cin >> data[i];
	}

	int M = 0;
	int num = 0;
	for (int i = 0; i < 9; i++)
	{
		if (data[i] > M)
		{
			M = data[i];
			num = i;
		}		
	}

	cout << M << endl;
	cout << num + 1 << endl;
	return 0;
}

문제 자체는 어려운 편이 아닙니다.

 

9개의 다른 자연수가 주어지고 그 최대값과 몇 번째에 입력받았는지입니다.

 

몇 번째에 입력받았는지 알아야 하기 때문에 sort()를 쓸 경우 그 몇 번째를 알 수가 없겠죠? 그렇기 때문에 하나하나씩 비교를 해봐야 하므로 for문을 사용해야 합니다. 

 

따라서 저는 for문에 들어가기 전에 M은 최댓값, num은 배열의 몇 번째인지 알기 위한 것으로 두고서 시작했습니다. 다만 i가 0부터 시작하기 때문에 num에는 +1을 통해 몇 번째인지 구해주었습니다. 

 

마지막에 나온 data[i]의 i가 바로 최댓값일 것이며 그 i를 번째로 해줄려면 +1을 해주면 됩니다.

 

반응형

'IT 프로그래밍 > 백준' 카테고리의 다른 글

[C++] 백준 10813 공 바꾸기 풀이  (0) 2024.03.18
[C++] 백준 10810번 공넣기  (0) 2024.03.18
[C++] 1546 평균  (0) 2024.03.16
[C++] 백준 10818 최소, 최대  (0) 2024.03.16
백준 10807 개수 세기  (0) 2024.03.16