백준 문제 풀이
백준 17088 파이썬 python : 등차수열 변환 @@황소처럼 우직하게@@ 졸려뒤지것네
hjp845
2020. 4. 23. 03:54
반응형
지금시각 새벽 3시 53분
앞에 두 숫자를 조작해준다 그 경우의 수는 9가지.
import sys
input = sys.stdin.readline
n = int(input())
B = list(map(int, input().split()))
if n == 1:
print(0)
exit()
def check(first, second, b):
diff = second - first
new = [first + diff * i for i in range(len(b))]
flag = True
change = 0
for i in range(2, len(b)):
if abs(new[i] - b[i]) > 1:
return [False, change]
if new[i] == b[i]:
pass
else:
change += 1
return [True, change]
ans = 999999999
for k in [-1, 0, 1]:
for u in [-1, 0, 1]:
flag, change = check(B[0] + k, B[1] + u, B)
if flag:
if k != 0:
change += 1
if u != 0:
change += 1
ans = min(ans, change)
print(ans if ans != 999999999 else -1)
반응형