백준 - 단계별로 풀어보기/2차원 배열

[백준] 2566번 : 최댓값 | C++

Dry_p 2023. 10. 12. 15:29

1. 문제 상세

 

https://www.acmicpc.net/problem/2566

 

 

 

2. 문제 접근

 

행렬을 돌며 값을 비교해 최대값 변수에 저장하고, 저장할 때 해당 배열의 인덱스를 저장하자.

모든 정수를 비교했다면 최대값과 저장해둔 인덱스 번호에 1을 더한 값을 출력한다.

 

 

 

3. 문제 풀이

 

#include <iostream>
using namespace std;

int main() {
    int a[9][9], max = 0, row, col;
    
    for(int i = 0; i < 9; i++) for(int j = 0; j < 9; j++) cin >> a[i][j];
    for(int i = 0; i < 9; i++) {
        for(int j = 0; j < 9; j++) {
            if(a[i][j] >= max) {
                max = a[i][j];
                row = i;
                col = j;
            }
        }
    }
    cout << max << endl << row + 1 << " " << col + 1;
}

 

크기가 9*9 인 정수형 2차원 배열 a 를 선언하고, 정수형 변수 max, row, col 을 선언한다. max 를 0으로 초기화한다.

 

for문으로 i 가 0부터 9보다 작을 때 1씩 더하며 반복하도록 한다.

반복에서 다시 for문으로 j 가 0부터 9보다 작을 때 1씩 더하며 반복하도록 한다.

cin 으로 정수를 입력받아 배열 a[i][j] 위치에 저장한다.

 

위의 반복이 끝나면 다시 for문으로 i 가 0부터 9보다 작을 때 1씩 더하며 반복한다.

반복에서 다시 for문으로 j 가 0부터 9보다 작을 때 1씩 더하며 반복한다.

if문으로 a[i][j] 위치의 값이 max 의 값보다 크거나 같다면 max 에 a[i][j] 위치의 값을 저장하고, row 에 i, col 에 j 를 저장한다.

 

반복이 모두 끝나면 cout 으로 max, 다음줄에 row, col 을 출력한다.

 

 

 

4. 성능 확인

 

 

 

 

5. 마무리

 

.