이웃한 요소와의 차

박재현·2022년 2월 14일
0

알고리즘 부수기

목록 보기
10/43
post-thumbnail

문제 설명

문제 정의

5 x 5 2차원 배열에 무작위로 25개의 숫자로 초기화 한 후 25개의 각 요소에 대해서 그 요소와 이웃한 요소와의 차의 절댓값을 구해 총합을 구하시오

제한

벽에 있는 요소는 이웃한 요소가 없을 수 있다.

입력

각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호와 배열의 행 수가 주어지고 그 다음 줄에는 배열의 원소들이 주어진다.

1
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

출력

테스트 케이스에 대한 답을 출력한다.
240

문제 풀이

  1. 입력받아 arr이차원 배열을 만든다.
  2. 탐색할 상하좌우에 해당하는 방향에 대한 튜플을 정의한다.
  3. 인덱스 초과 에러에 조건을 걸고, 에러에 해당하지 않으면
  4. 현재 탐색 중인 값과 절댓값이 차를 계산한다.
  5. result에 더하고 총합을 출력한다.

코드

T = int(input())
result = 0
for tc in range(1, T + 1):
    N = int(input())
    arr = [list(map(int, input().split())) for _ in range(N)]

    for i in range(N):
        for j in range(N):
            sumValue = 0
            for di, dj in (1, 0), (0, 1), (-1, 0), (0, -1):
                ni = i + di
                nj = j + dj
                if 0 <= ni < N and 0 <= nj < N:
                    result += abs(arr[i][j] - arr[ni][nj])

print(result)
profile
공동의 성장을 추구하는 개발자

0개의 댓글