ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2566번 최댓값
    백준 코딩테스트/2차원 배열 2024. 10. 30. 15:59

    문제

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

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

     


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

    입력

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

    출력

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

     

    예제 입력 1 복사

    3 23 85 34 17 74 25 52 65
    10 7 39 42 88 52 14 72 63
    87 42 18 78 53 45 18 84 53
    34 28 64 85 12 16 75 36 55
    21 77 45 35 28 75 90 76 1
    25 87 65 15 28 11 37 28 74
    65 27 75 41 7 89 78 64 39
    47 47 70 45 23 65 3 41 44
    87 13 82 38 31 12 29 29 80
    

    예제 출력 1 복사

    90
    5 7

     

    n
    n, m, max_value = 0, 0, 0

    for i in range(9):
        row = list(map(int, input().split()))
        if max(row) >= max_value:
            max_value = max(row)
            n = i + 1
            m = row.index(max(row)) + 1

    print(max_value)
    print(f'{n} {m}')

     

    행렬에서 최댓값을 가져오면 되는데, 여기서 굳이 행렬에 대한 리스트를 만들지말고 진행해도 된다고 생각했다. 왜냐 최댓값만 가져오면 되니까.!

    max()로 row에 대한 값을 가져오고, 변수로 저장해 둔 다음 row마다 진행해서 max()를 구하고 비교하면 된다.

    간단하다.

    '백준 코딩테스트 > 2차원 배열' 카테고리의 다른 글

    2563번 색종이  (1) 2024.10.30
    10798번 세로읽기  (0) 2024.10.30
    2738번 행렬 덧셈  (0) 2024.10.30
Designed by Tistory.