알고리즘 설계 기법
- 모르겠음. 없는 듯
런타임 에러났다.. 지금 작성한 코드는 답이 나오긴 하는 것 같은데, 코드를 써놓고 딱 봐도 시간 엄청 걸리게 생겼다.
코드
N = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
def find(a, b):
if sum(a) != sum(b): return -1
else:
arr = []
result = 0
for i in range(N):
arr.append(a[i]-b[i]) #음수: 부족한 양 양수:넘치는 양
for i in range(N):
if arr[i] < 0:
x = y = i
while arr[i] != 0:
while (arr[x] <= 0 and arr[y] <= 0):
x -= 1
y += 1
if arr[x] > 0:
result += i - x
arr[x] -= 1
arr[i] += 1
elif arr[y] > 0:
result += y - i
arr[y] -= 1
arr[i] += 1
return result
print(find(a, b))
줄이는 방법이 뭐일지는 생각해봐야 할 듯
'백준' 카테고리의 다른 글
[2321] 수 복원하기 - python 풀이 (0) | 2022.03.23 |
---|---|
[3029] 경고 - python 풀이 (0) | 2022.03.22 |
[3028] 창영마을 - python 풀이 (0) | 2022.03.22 |
[12887] 경로 게임 - python 풀이 (0) | 2022.03.19 |
[14501] 퇴사 - python 풀이 (0) | 2022.03.18 |
댓글