촉촉한초코칩

[백준] 2566(최댓값) c언어 본문

Algorithm

[백준] 2566(최댓값) c언어

햄친구베이컨 2023. 3. 18. 13:44

문제

<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.

예를 들어, 다음과 같이 81개의 수가 주어지면

이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다.

입력

첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다.

출력

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.

 


 

  1. 먼저 9x9 배열과 max, 그리고 최댓값의 위치를 저장할 변수를 선언한다. 
  2. 이중for문으로 9번씩 돌려서 값을 입력받고 다시 9번씩 돌려서 max와 비교하고 최댓값을 대입한다.
  3. 정답을 출력한다. 이때 배열은 0부터 시작하므로 1씩 더해준다.
#include <stdio.h>

int main() {
  int a[9][9] = {0,};
  int max = 0;
  int row = 0; 
  int column = 0;

  for(int i=0; i<9; i++) {
    for (int j=0; j<9; j++) {
      scanf("%d", &a[i][j]);
    }
  }

  for(int i=0; i<9; i++) {
    for (int j=0; j<9; j++) {
      if(max < a[i][j]) {
        max = a[i][j];
        row = i;
        column = j;
      }
    }
  }

  printf("%d\n", max);
  printf("%d %d\n", row+1, column+1);
}

'Algorithm' 카테고리의 다른 글

[백준] 2587(대표값2) c언어  (0) 2023.03.25
03. 검색  (0) 2023.03.22
[백준] 2738(행렬 덧셈) c언어  (0) 2023.03.13
[백준] 10810(공 넣기) c언어  (0) 2023.03.06
[백준] 25314 (코딩은 체육과목 입니다) c언어  (0) 2023.02.26