🐸 문제 정보
🤖 알고리즘
구현
⏱️ 풀이 시간
15.14m
📝 풀이
처음에 숫자 야구 규칙을 직접 코드로 구현해야하나..? 하고 헉 했는데, 알고보니 그냥 순열에서 조건 맞지 않는 요소를 제거하는 문제였다.
파이썬이니까 permutation 쓰고, set으로 시간복잡도를 조금이라도 줄이고자 했다.
🧑💻 나의 답
# pypy3
import sys
from itertools import permutations
input = sys.stdin.readline
n = int(input().rstrip())
candi = set(permutations([1,2,3,4,5,6,7,8,9], 3))
for _ in range(n):
cur, s, b = list(map(int, input().rstrip().split()))
cur = tuple(map(int, list(str(cur))))
temp = set()
for num in candi:
ts, tb = 0, 0
for i in range(3):
if num[i] == cur[i]: ts += 1
elif num[i] in cur: tb += 1
if (ts == s) and (tb == b):
temp.add(num)
candi = temp
print(len(candi))
'PS > 문제풀이' 카테고리의 다른 글
백준 7511 소셜 네트워킹 어플리케이션 Python (1) | 2024.02.09 |
---|---|
백준 17485 진우와 달 여행 (Large) Python (0) | 2024.02.09 |
백준 2812 크게 만들기 Python (0) | 2024.02.08 |
백준 10819 차이를 최대로 Python (1) | 2024.02.08 |
백준 1976 여행 가자 Python (0) | 2024.02.07 |