💡문제접근
- 스트라이크와 볼의 개념을 정확히 이해하고 자릿수와 숫자가 모두 일치한다면 스트라이크 추가, 자릿수가 일치하지 않지만 숫자가 들어있다면 볼을 추가하고 입력한 스트라이크와 볼과 숫자가 일치하면 그대로 놔두고 만약 일치하지 않는다면 해당 숫자를 제거한다.
💡코드(메모리 : 31256KB, 시간 : 44ms)
from itertools import permutations
import sys
input = sys.stdin.readline
Array = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
arr = list(permutations(Array, 3))
N = int(input())
for _ in range(N):
val, strike_cnt, ball_cnt = map(int, input().strip().split())
val = list(str(val))
remove_cnt = 0
for i in range(len(arr)):
strike, ball = 0, 0
i -= remove_cnt
for j in range(3):
if val[j] == arr[i][j]:
strike += 1
elif val[j] in arr[i]:
ball += 1
if strike != strike_cnt or ball != ball_cnt:
arr.remove(arr[i])
remove_cnt += 1
print(len(arr))
💡소요시간 : 48m