Search
Duplicate

BOJ 2503 숫자야구

생성일
2024/07/28 04:58
태그
구현
브루트포스 알고리즘

문제 설명

스트라이크와 볼에 대한 정보가 NN개 주어지면, 해당 조건을 만족하는 답의 개수를 구하는 문제
1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수

예제 입력/출력

입력1
4 123 1 1 356 1 0 327 2 0 489 0 1
Plain Text
복사
출력1
2
Plain Text
복사

제약 조건

1N1001 ≤ N ≤ 100

문제 풀이

답이 될 수 있는 모든 경우를 살펴보면 된다.
O((9P3)N)O( (_{9}P_{3}) \cdot N )

풀이 코드

from itertools import permutations N = int(input()) infos = [input().split() for _ in range(N)] ans = 0 for cur in permutations(range(1, 10), 3): ok = True for num, st, bl in infos: cur_st = cur_bl = 0 for i in range(3): if str(cur[i]) == num[i]: cur_st += 1 elif str(cur[i]) in num: cur_bl += 1 if cur_st != int(st) or cur_bl != int(bl): ok = False break if ok: ans += 1 print(ans)
Python
복사