본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 2562번: 최댓값

문제 출처: www.acmicpc.net/problem/2562

 

2562번: 최댓값

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

www.acmicpc.net

1. 코드

2. 풀이

int arr[9];
int max, index;

문제에서 9번만 입력을 한다고 한다. 그렇기 때문에 배열의 크기를 9만큼 설정해주고 최댓값을 저장하는 max라는 변수와 그 최댓값의 인덱스값을 저장하는 index라는 변수를 선언해준다.

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

        if (!i)
        {
            max = arr[i];
            index = i;
        }

        if (max < arr[i])
        {
            max = arr[i];
            index = i;
        }
    }

그리고 9번을 반복하여 배열에 값을 입력한다.

if (!i)
{
    max = arr[i];
    index = i;
}

만약 i가 처음입력이 되는 경우라면 max의 값은 arr의 값을 받아온다. 그리고 index는 i를 받아온다.

if (max < arr[i])
{
    max = arr[i];
    index = i;
}

나중에 배열에 입력한 값 중 max보다 큰 값이 있다면 max의 값은 해당하는 배열의 값으로 초기화해주고 index 또한 해당하는 i의 값으로 초기화시켜준다.

cout << max << endl <<index + 1;

그리고 출력예제에 맞게 출력을 해주는데 index값에 1을 더한 이유는 위에서 i변수는 0부터 8까지 증가하였기에 1을 더한 것이다.