포스트

백준 2562 - 최댓값

백준 2562 — max_element로 최댓값과 위치(1-based) 찾기

아홉 개의 수를 입력받아 최댓값과 그 위치(1-based)를 출력하는 문제. max_element로 최댓값을 가리키는 반복자를 얻고, begin()과의 차이로 인덱스를 계산했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
  vector<int> nums(9);
  
  for (size_t i = 0; i < nums.size(); i++)
  {
    cin >> nums[i];
  }
  
  int idx = max_element(nums.begin(), nums.end())- nums.begin();

  cout << nums[idx] <<endl;
  cout << idx + 1 <<endl;
  return 0;
}

핵심 요약max_element(begin, end)는 최댓값의 반복자를 반환하므로, begin()을 빼면 인덱스가 나온다. 문제가 1-based 위치를 요구하면 idx + 1로 보정해서 출력한다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.