코딩

[BOJ, 백준] 1111 IQ Test Python

척척석사아님 2024. 6. 13. 15:35
728x90

 

간단한 일차방정식의 꼴을 준 뒤, 초기값의 궤도가 그 이후와 일치하는가? 라는 것을 물어보는 문제가 되겠다.

 

즉, 어떤 함수 f(x) = ax + b가 주어져있을 때

 

초기값을 x_0 이라고 하고, i+1번째 항을 x_i로 둔다면

x_i = f(x_{i-1}) = f(f(x_{i-2})) = .... = f .... f(x_0) 꼴인가? 라는 것을 묻는 문제가 되겠습니다.

 

그리고 이에 해당하는 코드는 아래와 같습니다.

 

N = int(input())
num = list(map(int,input().split()))

def f(num):
    if len(num) == 1:
        return "A"
    else:
        ans = []
        for a in range (-200,201):
            b = num[1] - (a * num[0])
            jud = True
            for i in range (1, N):
                if a * num[i-1] + b != num[i]:
                    jud = False
                    break
            if jud == True:
                ans.append(a * num[-1] + b)
        ans = list(set(ans))
        if len(ans) == 1:
            return ans[0]
        elif len(ans) > 1:
            return "A"
        elif len(ans) == 0:
            return "B"
print(f(num))