728x90
반응형

단순 수학 문제이다. 수열의 첫 번째 값만 찾으면 뒤는 쉽다.

1) a-b = a+c - (b+c) = li[0][2]-li[1][2] 

2) a = (a+b + a-b)/2 = (li[0][1] + li[0][2]-li[1][2])/2 

3) b = a+b - a = li[0][1] - a, c = a+c - a = li[0][2] - a, ... 

그리고 N = 2일 때는 그냥 따로 처리해주는 게 맞는 것 같다. 

EX) N = 2, 입력 [[2, 0], [0, 2]] -> 1 1 출력

N = int(input())
li = [list(map(int, input().split())) for _ in range(N)]
if N == 2:
    print(1, 1)
else:
    res = [(li[0][1] + li[0][2]-li[1][2])//2]
    for i in range(1, N):
        res.append(li[0][i]-res[0])
    print(*res)

 

728x90
반응형

+ Recent posts