08 Dec 2022

<aside> ✨ 이번 글은 기술에 대해서 이야기하기보다는, 2562번을 풀 수 있는 여러가지 방법에 대해서 소개하고자 한다. 이번 글은 간단한 글인 만큼 서론은 짧게 하고 바로 출발해 보자!

</aside>

Table of Contents

문제 해석

2562번: 최댓값

백준 2562번.

우선 문제에 대해 제대로 이해해야 한다. 9개의 서로 다른 자연수. 첫 몇개의 단어부터 단서가 3개씩이나 주어졌다.

구할 것은 최댓값과 그 최댓값이 몇 번째로 주어진 수인지 확인하는 문제다. 이 단서들을 머릿속에 넣고 출발하자.

또 주의할 점은 몇 번째라고 하니 프로그래머인 우리들은 당연히 0번째부터 세겠지만, 이 문제는 첫번째부터 센다. 주의하자.

우선 앞서 본 3개의 제한 조건을 보니 다음과 같은 생각이 든다.

  1. 일단 9개라고 개수가 정해져 있으니 왠지 array가 생각난다.
  2. 서로 다른 수라고 했으니 최댓값은 단 하나다. 최댓값이 여러 개라면 여러 개 중 어떤 친구의 index를 출력해야 할지 고민했겠지만, 이 문제에서 그럴 일은 없는 것 같다.
  3. 주어지는 숫자는 자연수이다. 자연수는 0보다 큰 숫자이므로 그와 같거나 작은 숫자는 신경 쓸 필요가 없다.

어떻게 해야 최댓값과 그 index를 구할 수 있을까? 크게 2가지 방법이 있을 것 같다. 직접 구현하는 방법과 c++ STL(내장 기능)을 사용하는 방법이 되겠다.

직접 최댓값과 index를 구하는 방법

내가 생각하기에 가장 깔끔한 코드는 다음과 같다.