백준(BaekJoon)

[BaekJoon/C] No.2566 : 최댓값

ekdnjs510 2024. 5. 17. 14:26
728x90

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

No.2566 문제

문제해석

 

  • 행(row)의 크기 9와 열(column)의 크기 9인 2차원 배열을 이용해 격자판을 형성해줌
  • 배열의 0번째 요소는 사용하지 않으므로 행과 열을 1로 시작 : row=1, column=1
  • 반복문을 이용해 최댓값과 입력받은 배열을 비교하여 최댓값 저장한 뒤 출력

 

소스코드

#include <stdio.h>

int main() {
	int arr[9][9] = { 0 }, max = 0, row = 1, column = 1;
	for (int i = 0; i < 9; i++) {
		for (int j = 0; j < 9; j++) {
			scanf("%d", &arr[i][j]);
			if (max < arr[i][j]) {
				max = arr[i][j];
				row = i + 1;
				column = j + 1;
			}
		}
	}
	printf("%d\n%d %d", max, row, column);
	return 0;
}

 

문제풀이

  1. int arr[9][9] = {0} : 2차원 배열을 사용하여 9X9격자판을 형성해줍니다. / 사용자에게 입력받을 배열로 사용(변수)합니다.
  2. max=0 최댓값을 0으로 초기화, row=column=1 행과 열을 1부터 시작합니다 .
  3. printf("%d\n%d %d", max, row, column) : 이후 반복문을 거친 최댓값, 행, 열을 출력합니다.
for (int i = 0; i < 9; i++) { //격자판 가로 또는 세로의 9칸을 읽을 반복문
	for (int j = 0; j < 9; j++) { //격자판 세로 또는 가로의 9칸을 읽을 반복문
		scanf("%d", &arr[i][j]); //사용자에게 배열을 입력받습니다
		if (max < arr[i][j]) { //배열을 반복하는동안 최댓값이 입력받은 배열과 비교했을 때 작은 지 판단합니다
			max = arr[i][j]; //최댓값이 배열보다 작을 시 배열의 값을 최댓값으로 저장해줍니다
			row = i + 1; //행을 한칸 이동합니다
			column = j + 1; //열을 한칸 이동합니다
		}
	}
}

예제

728x90