programming
프로그래밍 퀴즈 Diagonal Difference 파이썬 풀이 해설
by Kitle · 2020. 07. 26.
원본 문제 : https://www.hackerrank.com/challenges/diagonal-difference/problem
풀이 github 에서 보기 : https://github.com/kitlexyz/algorithm/blob/master/hackerrank/diagonal-difference.py
주어진 list(배열)의 대각선에 있는 원소들을 더한 후 정방향에서 역방향 대각선 값을 뺀 절대값을 구하라
솔루션 :
1) 대각선 값 추출하기 / 반대 대각선 값 추출하기
대각선 값은 0,0 1,1 을 응용한다. 반대 대각선은 인덱스를 응용할 수도 있지만 여기서는 그냥 배열(리스트)를 뒤집어 다시 값을 구한다.
2) 절대값 구하기
기본 함수인 abs()
를 활용한다.
풀이 :
def diagonalDifference(arr):
primary = 0
secondary = 0
for idx, item in enumerate(arr):
primary += item[idx]
secondary += item[::-1][idx]
return abs(primary-secondary)
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
n = int(input().strip())
arr = []
for _ in range(n):
arr.append(list(map(int, input().rstrip().split())))
result = diagonalDifference(arr)
fptr.write(str(result) + '\n')
fptr.close()