Permutations을 이용해서 가능한 모든 답을 생성해 낸다.
가능한 모든 답들에 대화과정을 대입해서 올바른 대화인지 확인한다.
만약 중간에 하나라도 맞지 않는다면 다음 가능한 답에 대입을 시작한다.대화 과정이 모두 통과하면 answer을 1 증가시킨다.
from itertools import permutations
N = int(input())
queries = [list(map(int, input().split(" "))) for _ in range(N)]
def check(case, query):
input_num, input_strike, input_ball = query
strike = ball = 0
input_num = str(input_num)
for index, num in enumerate(input_num):
if int(num) in case:
if case[index] == int(num):
strike += 1
else:
ball += 1
return ball == input_ball and strike == input_strike
def solution(N, queries):
cases = list(permutations(range(1,10), 3))
answer = 0
for case in cases:
correct_flag = True
for query in queries:
if not check(case, query):
correct_flag = False
break
answer = answer + 1 if correct_flag else answer
print(answer)
return
solution(N, queries)