문제 출처: www.acmicpc.net/problem/2562
2562번: 최댓값
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어
www.acmicpc.net
1. 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
int main(void) | |
{ | |
int arr[9]; | |
int 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; | |
} | |
} | |
cout << max << endl <<index + 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을 더한 것이다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 3052번: 나머지 [C++] (0) | 2021.01.06 |
---|---|
백준 알고리즘 2577번: 숫자의 개수 [C++] (0) | 2021.01.02 |
백준 알고리즘 10818번: 최소, 최대 [C++] (0) | 2020.12.21 |
백준 알고리즘 10951번: A+B - 4 [C++] (0) | 2020.12.19 |
백준 알고리즘 10952번: A+B - 5 [C++] (0) | 2020.12.18 |