안녕하세요 Twodragon 입니다.
오늘도 Problem Solving 코딩테스트도 공부해볼 마음으로 일일 1일 코딩 일기를 올려보려고 합니다. 하나의 습관을 만들기 위해 이 글을 포스팅하고 1일 코딩 테스트를 하려고 합니다. 여러분들도 함께하시죠!
해결방법:
일단 이를 배열로 천천히 살펴보면 첫번째 arr[i][j] 는 i=j 모습이 보이고, 두번째 arr[i][j] 는 i=index 그대로, j=최대 index에서 순차적으로 - 감소하는 코드로 구성하면 됩니다.
arr[1][1]=11 arr[1][3]=4
arr[2][2]=5 arr[2][2]=5
arr[3][3]=-12 arr[3][1]=10
11+5-12=4, 4+5+10=19
절대값 abs |4-19| = 15 라는 값이 나오게 된다.
문제:
해답(python3):
#!/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
max_index=len(arr)-1
sum_right = 0
sum_left=0
for index in range(len(arr)):
right_index= index
left_row=max_index-index
left_col=index
sum_right=sum_right+arr[right_index][right_index]
sum_left=sum_left+arr[left_col][left_row]
return abs(sum_right - sum_left)
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()
'* 컴퓨터 언어 (Computer Language) > Python' 카테고리의 다른 글
해커랭크 Staircase 문제풀이 (Problem Solving 코딩테스트 7단계) (0) | 2020.05.18 |
---|---|
해커랭크 Plus Minus 문제풀이 (Problem Solving 코딩테스트 6단계) (2) | 2020.05.14 |
해커랭크 A Very Big Sum 문제풀이 (Problem Solving 코딩테스트 4단계) (0) | 2020.05.11 |
해커랭크 Compare the Triplets 문제풀이 (Problem Solving 코딩테스트 3단계) (0) | 2020.05.10 |