2023년을 맞아 새롭게 시작하는 1 Day 1 Commit Challenge!
2022년 한 해 동안 6개 밖에 하지 않아서 조금 부끄럽다...
인도네시아에서 학생들을 가르치면서 하루에 하나씩 알고리즘을 정복해보자.
오늘은 조금 쉬운 Hackers의 prepare/algorithm에서 문제를 가져왔다.
#!/bin/python3
import math
import os
import random
import re
import sys
#
# Complete the 'diagonalDifference' function below.
#
# The function is expected to return an INTEGER.
# The function accepts 2D_INTEGER_ARRAY arr as parameter.
#
def diagonalDifference(arr):
# Write your code here
left = 0
right = 0
for i in range(len(arr)): # 3
print("i", i)
left += arr[i][i] # 0 0 / 1 1 / 2 2
right += arr[i][len(arr)-i-1] # 0 2 / 1 1 / 2 0
# print("l", left)
# print("r", right)
return abs(left - right)
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
n = int(input().strip())
# print("n", n)
arr = []
for _ in range(n):
arr.append(list(map(int, input().rstrip().split())))
# print(arr)
result = diagonalDifference(arr)
fptr.write(str(result) + '\n')
fptr.close()
단순히 diagonal difference를 구하면 되는 문제.
diagonal은 머신러닝할 때 계속 나왔던 부분이다. 행렬에도 많이 등장하는 개념.
대각선 방향으로 더해주고 더해주고 abs함수 써서 부호에 상관없이 그 차이만 구하면 된다.