백준/단계별

[C++] 백준 2566

loasd 2022. 12. 29. 00:19
반응형

백준의 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