Files
Algorithm/백준/Gold/1111. IQ Test/IQ Test.py

71 lines
1.8 KiB
Python

import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int, input().split()))
if n == 1:
print('A')
elif n == 2:
# n이 2일 때 두 수가 같으면 그 수, 다르면 A를 출력
if arr[0] == arr[1]:
print(arr[0])
else:
print('A')
elif arr[1] == arr[0]:
flag = False
for i in range(1, n):
if arr[i] != arr[0]:
flag = True
if flag:
print('B')
else:
print(arr[0])
elif n > 2 and arr[2] - arr[1] == arr[1] - arr[0]:
d = arr[1] - arr[0]
flag = False
for i in range(1, n):
if arr[i] - arr[i-1] != d:
flag = True
if flag:
print('B')
else:
print(arr[n-1] + d)
elif n > 2 and arr[0] != 0 and arr[1] % arr[0] == 0 and arr[1] != 0 and arr[2] % arr[1] == 0 and arr[2] // arr[1] == arr[1] // arr[0]:
# 등비수열 체크 (정확히 나누어 떨어지는지 확인)
r = arr[1] // arr[0]
flag = False
for i in range(1, n):
if arr[i-1] == 0 or arr[i] % arr[i-1] != 0 or arr[i] // arr[i-1] != r:
flag = True
break
if flag:
print('B')
else:
print(arr[n-1] * r)
else:
# 일반항 검사 전에 0으로 나누는 경우 방지
if arr[1] - arr[0] == 0:
print('B')
exit()
# 나눗셈이 정확히 떨어지는지 확인
if (arr[2] - arr[1]) % (arr[1] - arr[0]) != 0:
print('B')
exit()
a = (arr[2] - arr[1]) // (arr[1] - arr[0])
b = arr[1] - arr[0] * a # 직접 계산
flag = False
for i in range(1, n):
if arr[i] != arr[i-1] * a + b:
flag = True
break
if flag:
print('B')
else:
print(arr[n-1] * a + b)