반응형
백준의 2566번 문제 최댓값이다.
https://www.acmicpc.net/problem/2566
2566번: 최댓값
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.
www.acmicpc.net
< 문제 >
<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
예를 들어, 다음과 같이 81개의 수가 주어지면
이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다.
< 예제 >
배열을 전부 탐색하고 최댓값과 그 위치를 구하는 문제이다.
참고로 입력해야 하는 값이 많아서 귀찮을텐데 복사 붙여넣기를 하면 된다.
Ctrl+C로 예제를 복사한 다음 터미널에 Shift + Insert하면 된다.
#include <iostream>
using namespace std;
int main() {
int row, columm;
int array[9][9];
int max = 0;
int num = 0;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
cin >> array[i][j];
num = array[i][j];
if (num >= max) {
max = num;
row = i;
columm = j;
}
}
}
cout << max << endl;
cout << row + 1 << " " << columm + 1 << endl;
}
배열의 크기를 문제에서 정해주었기 때문에 그 크기에 맞는 배열을 생성해준다.
그리고 max는 최대값, num은 최대값과 비교할 때 편할려고 정해두었다.
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
cin >> array[i][j];
num = array[i][j];
if (num >= max) {
max = num;
row = i;
columm = j;
}
}
}
배열의 값들을 입력받은 다음 그 값을 num에 넣는다.
그리고 max와 비교했을 때 num이 더 크면 그 값을 max에 넣고 해당 행,열을 넣어준다.
그리고 마지막에 max, row, columm을 출력해주면 된다.
반응형
'백준 > 단계별' 카테고리의 다른 글
[C++] 백준 2750 (0) | 2022.12.30 |
---|---|
[C++] 백준 2563 (0) | 2022.12.29 |
[C++] 백준 2738 (1) | 2022.12.29 |
[C++] 백준 9020 (0) | 2022.12.28 |
[C++] 백준 4948 (0) | 2022.12.28 |