반응형
https://www.acmicpc.net/problem/2562
풀이
#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 |