백준

[백준] 브론즈Ⅲ : 2566번

제에엔 2024. 3. 31. 03:37

🔎 문제

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

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

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

 

⌨️ 입력

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

 

💻 출력

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

 


 

1. C++

#include <iostream>

using namespace std;

int main()
{
    int max_value = -1;
    int max_row = -1;
    int max_col = -1;

    for (int i = 0; i < 9; i++)
    {
        for (int j = 0; j < 9; j++)
        {
            int value;
            scanf("%d", &value);
            if (max_value <= value)
            {
                max_value = value;
                max_row = i + 1;
                max_col = j + 1;
            }
        }
    }
    printf("%d\n", max_value);
    printf("%d %d", max_row, max_col);

    return 0;
}

 


2. Python

max_value = -1
max_row = -1
max_col = -1

array = [list(map(int,input().split())) for _ in range(9)]

for r in range(9):
    for c in range(9):
        if max_value <= array[r][c]:
            max_value = array[r][c]
            max_row = r+1
            max_col = c+1

print(max_value)
print(max_row, max_col)

 


3. Java

import java.util.Scanner;

public class Bronze2566 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int max_value = -1;
        int max_row = -1;
        int max_col = -1;

        for (int r = 0; r < 9; r++) {
            for (int c = 0; c < 9; c++) {
                int value = scanner.nextInt();
                if (max_value <= value) {
                    max_value = value;
                    max_row = r + 1;
                    max_col = c + 1;
                }
            }
        }

        scanner.close();
        System.out.println(max_value);
        System.out.println(max_row + " " + max_col);
    }
}

 


4. Javascript

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

let max_value = -1;
let max_row = -1;
let max_col = -1;
let currentLine = 0;

rl.on('line', (input) => {
    let lines = input.split(' ').map(Number);
    processInput(currentLine, lines);
    currentLine++;

    if (currentLine >= 9) {
        console.log(max_value);
        console.log(max_row, max_col);
    }
})

function processInput(row, lines) {
    for (let c = 0; c < 9; c++) {
        if (max_value <= lines[c]) {
            max_value = lines[c];
            max_row = row + 1;
            max_col = c + 1;
        }
    }
}

'백준' 카테고리의 다른 글

[백준] 실버Ⅴ : 2563번  (0) 2024.03.31
[백준] 브론즈Ⅰ : 10798번  (1) 2024.03.31
[백준] 브론즈Ⅲ : 2738번  (0) 2024.03.31
[백준] 브론즈Ⅴ : 10869번  (0) 2024.03.30
[백준] 브론즈Ⅴ : 1000번  (1) 2024.03.30