
현재 민혁이와 영수는 게임을 하고 있는 도중에 있다. 민혁이가 영수에게 어떤 수들을 물어보았는지, 그리고 각각의 물음에 영수가 어떤 대답을 했는지가 입력으로 주어진다. 이 입력을 바탕으로 여러분은 영수가 생각하고 있을 가능성이 있는 수가 총 몇 개인지를 알아맞혀야 한다.
아래와 같은 경우를 생각해보자.
민혁: 123
영수: 1 스트라이크 1 볼.
민혁: 356
영수: 1 스트라이크 0 볼.
민혁: 327
영수: 2 스트라이크 0 볼.
민혁: 489
영수: 0 스트라이크 1 볼.
이때 가능한 답은 324와 328, 이렇게 두 가지이다.
영수는 동아리의 규율을 잘 따르는 착한 아이라 민혁이의 물음에 곧이곧대로 정직하게 답한다. 그러므로 영수의 답들에는 모순이 없다.
민혁이의 물음들과 각각의 물음에 대한 영수의 답이 입력으로 주어질 때 영수가 생각하고 있을 가능성이 있는 답의 총 개수를 출력하는 프로그램을 작성하시오.
예를 들어 123이 나왔고 영수가 S:1, B:1이라고 했다면
123이라는 숫자를 입력으로 넣어 주어진 경우의 수 중
123과 같이 1S가 되고 1B이 되는 경우의 수만 따로 구하면 된다.
1-1. for문으로 모든 경우를 구하기
n = int(input())
num = ['1','2','3','4','5','6','7','8','9']
# 모든 조합 생성하기
num_com = []
for n1 in num:
for n2 in num:
for n3 in num:
if n1!=n2 and n2!=n3 and n1!=n3:
num_com.append((n1,n2,n3))
1-1 결과.
[('1', '2', '3'), ('1', '2', '4'), ('1', '2', '5'), ('1', '2', '6'), ('1', '2', '7'), ('1', '2', '8'), ('1', '2', '9'), ('1', '3', '2'), ('1', '3', '4'), ('1', '3', '5'), ('1', '3', '6'), ('1', '3', '7'), ('1', '3', '8'), ('1', '3', '9'), ('1', '4', '2'), ('1', '4', '3'), ('1', '4', '5'), ('1', '4', '6'), ('1', '4', '7'), ('1', '4', '8'), ('1', '4', '9'), ('1', '5', '2'), ('1', '5', '3'), ('1', '5', '4'), ('1', '5', '6'), ('1', '5', '7'), ('1', '5', '8'), ('1', '5', '9'), ('1', '6', '2'), ('1', '6', '3'), ('1', '6', '4'), ('1', '6', '5'), ('1', '6', '7'), ('1', '6', '8'), ('1', '6', '9'), ('1', '7', '2'), ('1', '7', '3'), ('1', '7', '4'), ('1', '7', '5'), ('1', '7', '6'), ('1', '7', '8'), ('1', '7', '9'), ('1', '8', '2'), ('1', '8', '3'), ('1', '8', '4'), ('1', '8', '5'), ('1', '8', '6'), ('1', '8', '7'), ('1', '8', '9'), ('1', '9', '2'), ('1', '9', '3'), ('1', '9', '4'), ('1', '9', '5'), ('1', '9', '6'), ('1', '9', '7'), ('1', '9', '8'), ('2', '1', '3'), ('2', '1', '4'), ('2', '1', '5'), ('2', '1', '6'), ('2', '1', '7'), ('2', '1', '8'), ('2', '1', '9'), ('2', '3', '1'), ('2', '3', '4'), ('2', '3', '5'), ('2', '3', '6'), ('2', '3', '7'), ('2', '3', '8'), ('2', '3', '9'), ('2', '4', '1'), ('2', '4', '3'), ('2', '4', '5'), ('2', '4', '6'), ('2', '4', '7'), ('2', '4', '8'), ('2', '4', '9'), ('2', '5', '1'), ('2', '5', '3'), ('2', '5', '4'), ('2', '5', '6'), ('2', '5', '7'), ('2', '5', '8'), ('2', '5', '9'), ('2', '6', '1'), ('2', '6', '3'), ('2', '6', '4'), ('2', '6', '5'), ('2', '6', '7'), ('2', '6', '8'), ('2', '6', '9'), ('2', '7', '1'), ('2', '7', '3'), ('2', '7', '4'), ('2', '7', '5'), ('2', '7', '6'), ('2', '7', '8'), ('2', '7', '9'), ('2', '8', '1'), ('2', '8', '3'), ('2', '8', '4'), ('2', '8', '5'), ('2', '8', '6'), ('2', '8', '7'), ('2', '8', '9'), ('2', '9', '1'), ('2', '9', '3'), ('2', '9', '4'), ('2', '9', '5'), ('2', '9', '6'), ('2', '9', '7'), ('2', '9', '8'), ('3', '1', '2'), ('3', '1', '4'), ('3', '1', '5'), ('3', '1', '6'), ('3', '1', '7'), ('3', '1', '8'), ('3', '1', '9'), ('3', '2', '1'), ('3', '2', '4'), ('3', '2', '5'), ('3', '2', '6'), ('3', '2', '7'), ('3', '2', '8'), ('3', '2', '9'), ('3', '4', '1'), ('3', '4', '2'), ('3', '4', '5'), ('3', '4', '6'), ('3', '4', '7'), ('3', '4', '8'), ('3', '4', '9'), ('3', '5', '1'), ('3', '5', '2'), ('3', '5', '4'), ('3', '5', '6'), ('3', '5', '7'), ('3', '5', '8'), ('3', '5', '9'), ('3', '6', '1'), ('3', '6', '2'), ('3', '6', '4'), ('3', '6', '5'), ('3', '6', '7'), ('3', '6', '8'), ('3', '6', '9'), ('3', '7', '1'), ('3', '7', '2'), ('3', '7', '4'), ('3', '7', '5'), ('3', '7', '6'), ('3', '7', '8'), ('3', '7', '9'), ('3', '8', '1'), ('3', '8', '2'), ('3', '8', '4'), ('3', '8', '5'), ('3', '8', '6'), ('3', '8', '7'), ('3', '8', '9'), ('3', '9', '1'), ('3', '9', '2'), ('3', '9', '4'), ('3', '9', '5'), ('3', '9', '6'), ('3', '9', '7'), ('3', '9', '8'), ('4', '1', '2'), ('4', '1', '3'), ('4', '1', '5'), ('4', '1', '6'), ('4', '1', '7'), ('4', '1', '8'), ('4', '1', '9'), ('4', '2', '1'), ('4', '2', '3'), ('4', '2', '5'), ('4', '2', '6'), ('4', '2', '7'), ('4', '2', '8'), ('4', '2', '9'), ('4', '3', '1'), ('4', '3', '2'), ('4', '3', '5'), ('4', '3', '6'), ('4', '3', '7'), ('4', '3', '8'), ('4', '3', '9'), ('4', '5', '1'), ('4', '5', '2'), ('4', '5', '3'), ('4', '5', '6'), ('4', '5', '7'), ('4', '5', '8'), ('4', '5', '9'), ('4', '6', '1'), ('4', '6', '2'), ('4', '6', '3'), ('4', '6', '5'), ('4', '6', '7'), ('4', '6', '8'), ('4', '6', '9'), ('4', '7', '1'), ('4', '7', '2'), ('4', '7', '3'), ('4', '7', '5'), ('4', '7', '6'), ('4', '7', '8'), ('4', '7', '9'), ('4', '8', '1'), ('4', '8', '2'), ('4', '8', '3'), ('4', '8', '5'), ('4', '8', '6'), ('4', '8', '7'), ('4', '8', '9'), ('4', '9', '1'), ('4', '9', '2'), ('4', '9', '3'), ('4', '9', '5'), ('4', '9', '6'), ('4', '9', '7'), ('4', '9', '8'), ('5', '1', '2'), ('5', '1', '3'), ('5', '1', '4'), ('5', '1', '6'), ('5', '1', '7'), ('5', '1', '8'), ('5', '1', '9'), ('5', '2', '1'), ('5', '2', '3'), ('5', '2', '4'), ('5', '2', '6'), ('5', '2', '7'), ('5', '2', '8'), ('5', '2', '9'), ('5', '3', '1'), ('5', '3', '2'), ('5', '3', '4'), ('5', '3', '6'), ('5', '3', '7'), ('5', '3', '8'), ('5', '3', '9'), ('5', '4', '1'), ('5', '4', '2'), ('5', '4', '3'), ('5', '4', '6'), ('5', '4', '7'), ('5', '4', '8'), ('5', '4', '9'), ('5', '6', '1'), ('5', '6', '2'), ('5', '6', '3'), ('5', '6', '4'), ('5', '6', '7'), ('5', '6', '8'), ('5', '6', '9'), ('5', '7', '1'), ('5', '7', '2'), ('5', '7', '3'), ('5', '7', '4'), ('5', '7', '6'), ('5', '7', '8'), ('5', '7', '9'), ('5', '8', '1'), ('5', '8', '2'), ('5', '8', '3'), ('5', '8', '4'), ('5', '8', '6'), ('5', '8', '7'), ('5', '8', '9'), ('5', '9', '1'), ('5', '9', '2'), ('5', '9', '3'), ('5', '9', '4'), ('5', '9', '6'), ('5', '9', '7'), ('5', '9', '8'), ('6', '1', '2'), ('6', '1', '3'), ('6', '1', '4'), ('6', '1', '5'), ('6', '1', '7'), ('6', '1', '8'), ('6', '1', '9'), ('6', '2', '1'), ('6', '2', '3'), ('6', '2', '4'), ('6', '2', '5'), ('6', '2', '7'), ('6', '2', '8'), ('6', '2', '9'), ('6', '3', '1'), ('6', '3', '2'), ('6', '3', '4'), ('6', '3', '5'), ('6', '3', '7'), ('6', '3', '8'), ('6', '3', '9'), ('6', '4', '1'), ('6', '4', '2'), ('6', '4', '3'), ('6', '4', '5'), ('6', '4', '7'), ('6', '4', '8'), ('6', '4', '9'), ('6', '5', '1'), ('6', '5', '2'), ('6', '5', '3'), ('6', '5', '4'), ('6', '5', '7'), ('6', '5', '8'), ('6', '5', '9'), ('6', '7', '1'), ('6', '7', '2'), ('6', '7', '3'), ('6', '7', '4'), ('6', '7', '5'), ('6', '7', '8'), ('6', '7', '9'), ('6', '8', '1'), ('6', '8', '2'), ('6', '8', '3'), ('6', '8', '4'), ('6', '8', '5'), ('6', '8', '7'), ('6', '8', '9'), ('6', '9', '1'), ('6', '9', '2'), ('6', '9', '3'), ('6', '9', '4'), ('6', '9', '5'), ('6', '9', '7'), ('6', '9', '8'), ('7', '1', '2'), ('7', '1', '3'), ('7', '1', '4'), ('7', '1', '5'), ('7', '1', '6'), ('7', '1', '8'), ('7', '1', '9'), ('7', '2', '1'), ('7', '2', '3'), ('7', '2', '4'), ('7', '2', '5'), ('7', '2', '6'), ('7', '2', '8'), ('7', '2', '9'), ('7', '3', '1'), ('7', '3', '2'), ('7', '3', '4'), ('7', '3', '5'), ('7', '3', '6'), ('7', '3', '8'), ('7', '3', '9'), ('7', '4', '1'), ('7', '4', '2'), ('7', '4', '3'), ('7', '4', '5'), ('7', '4', '6'), ('7', '4', '8'), ('7', '4', '9'), ('7', '5', '1'), ('7', '5', '2'), ('7', '5', '3'), ('7', '5', '4'), ('7', '5', '6'), ('7', '5', '8'), ('7', '5', '9'), ('7', '6', '1'), ('7', '6', '2'), ('7', '6', '3'), ('7', '6', '4'), ('7', '6', '5'), ('7', '6', '8'), ('7', '6', '9'), ('7', '8', '1'), ('7', '8', '2'), ('7', '8', '3'), ('7', '8', '4'), ('7', '8', '5'), ('7', '8', '6'), ('7', '8', '9'), ('7', '9', '1'), ('7', '9', '2'), ('7', '9', '3'), ('7', '9', '4'), ('7', '9', '5'), ('7', '9', '6'), ('7', '9', '8'), ('8', '1', '2'), ('8', '1', '3'), ('8', '1', '4'), ('8', '1', '5'), ('8', '1', '6'), ('8', '1', '7'), ('8', '1', '9'), ('8', '2', '1'), ('8', '2', '3'), ('8', '2', '4'), ('8', '2', '5'), ('8', '2', '6'), ('8', '2', '7'), ('8', '2', '9'), ('8', '3', '1'), ('8', '3', '2'), ('8', '3', '4'), ('8', '3', '5'), ('8', '3', '6'), ('8', '3', '7'), ('8', '3', '9'), ('8', '4', '1'), ('8', '4', '2'), ('8', '4', '3'), ('8', '4', '5'), ('8', '4', '6'), ('8', '4', '7'), ('8', '4', '9'), ('8', '5', '1'), ('8', '5', '2'), ('8', '5', '3'), ('8', '5', '4'), ('8', '5', '6'), ('8', '5', '7'), ('8', '5', '9'), ('8', '6', '1'), ('8', '6', '2'), ('8', '6', '3'), ('8', '6', '4'), ('8', '6', '5'), ('8', '6', '7'), ('8', '6', '9'), ('8', '7', '1'), ('8', '7', '2'), ('8', '7', '3'), ('8', '7', '4'), ('8', '7', '5'), ('8', '7', '6'), ('8', '7', '9'), ('8', '9', '1'), ('8', '9', '2'), ('8', '9', '3'), ('8', '9', '4'), ('8', '9', '5'), ('8', '9', '6'), ('8', '9', '7'), ('9', '1', '2'), ('9', '1', '3'), ('9', '1', '4'), ('9', '1', '5'), ('9', '1', '6'), ('9', '1', '7'), ('9', '1', '8'), ('9', '2', '1'), ('9', '2', '3'), ('9', '2', '4'), ('9', '2', '5'), ('9', '2', '6'), ('9', '2', '7'), ('9', '2', '8'), ('9', '3', '1'), ('9', '3', '2'), ('9', '3', '4'), ('9', '3', '5'), ('9', '3', '6'), ('9', '3', '7'), ('9', '3', '8'), ('9', '4', '1'), ('9', '4', '2'), ('9', '4', '3'), ('9', '4', '5'), ('9', '4', '6'), ('9', '4', '7'), ('9', '4', '8'), ('9', '5', '1'), ('9', '5', '2'), ('9', '5', '3'), ('9', '5', '4'), ('9', '5', '6'), ('9', '5', '7'), ('9', '5', '8'), ('9', '6', '1'), ('9', '6', '2'), ('9', '6', '3'), ('9', '6', '4'), ('9', '6', '5'), ('9', '6', '7'), ('9', '6', '8'), ('9', '7', '1'), ('9', '7', '2'), ('9', '7', '3'), ('9', '7', '4'), ('9', '7', '5'), ('9', '7', '6'), ('9', '7', '8'), ('9', '8', '1'), ('9', '8', '2'), ('9', '8', '3'), ('9', '8', '4'), ('9', '8', '5'), ('9', '8', '6'), ('9', '8', '7')]
1~9까지의 숫자를 조합해야 하기에 문자로 먼저 리스트를 만들고 중복되지 않는 경우를 구하는 방식으로 진행하였다.
파이썬의 itertools를 이용하여 combinations을 통해 모든 경우를 구하는 것도 하나의 방법이다.
1-2. combinations로 모든 경우를 구하기
from itertools import permutations
num_cases = list(permutations('123456789', 3))
print(num_cases)
1-2 결과.
[('1', '2', '3'), ('1', '2', '4'), ('1', '2', '5'), ('1', '2', '6'), ('1', '2', '7'), ('1', '2', '8'), ('1', '2', '9'), ('1', '3', '4'), ('1', '3', '5'), ('1', '3', '6'), ('1', '3', '7'), ('1', '3', '8'), ('1', '3', '9'), ('1', '4', '5'), ('1', '4', '6'), ('1', '4', '7'), ('1', '4', '8'), ('1', '4', '9'), ('1', '5', '6'), ('1', '5', '7'), ('1', '5', '8'), ('1', '5', '9'), ('1', '6', '7'), ('1', '6', '8'), ('1', '6', '9'), ('1', '7', '8'), ('1', '7', '9'), ('1', '8', '9'), ('2', '3', '4'), ('2', '3', '5'), ('2', '3', '6'), ('2', '3', '7'), ('2', '3', '8'), ('2', '3', '9'), ('2', '4', '5'), ('2', '4', '6'), ('2', '4', '7'), ('2', '4', '8'), ('2', '4', '9'), ('2', '5', '6'), ('2', '5', '7'), ('2', '5', '8'), ('2', '5', '9'), ('2', '6', '7'), ('2', '6', '8'), ('2', '6', '9'), ('2', '7', '8'), ('2', '7', '9'), ('2', '8', '9'), ('3', '4', '5'), ('3', '4', '6'), ('3', '4', '7'), ('3', '4', '8'), ('3', '4', '9'), ('3', '5', '6'), ('3', '5', '7'), ('3', '5', '8'), ('3', '5', '9'), ('3', '6', '7'), ('3', '6', '8'), ('3', '6', '9'), ('3', '7', '8'), ('3', '7', '9'), ('3', '8', '9'), ('4', '5', '6'), ('4', '5', '7'), ('4', '5', '8'), ('4', '5', '9'), ('4', '6', '7'), ('4', '6', '8'), ('4', '6', '9'), ('4', '7', '8'), ('4', '7', '9'), ('4', '8', '9'), ('5', '6', '7'), ('5', '6', '8'), ('5', '6', '9'), ('5', '7', '8'), ('5', '7', '9'), ('5', '8', '9'), ('6', '7', '8'), ('6', '7', '9'), ('6', '8', '9'), ('7', '8', '9')]
num = ['1','2','3','4','5','6','7','8','9']
def make_case(num, num_cases, case, visited):
if len(case) == 3:
num_cases.append(case)
return
for i in range(9):
if not visited[i]:
visited[i] = True
# 현재 숫자를 방문하는 경우
# 튜플에서 단일 요소를 추가할 때 쉼표(,)를 사용
make_case(num, num_cases, case+(num[i],), visited)
# 현재 숫자를 방문하지 않는 경우
visited[i] = False
return num_cases
visited = [False] * 9
print(make_case(num, [], (), visited))
1-3. 결과
[('1', '2', '3'), ('1', '2', '4'), ('1', '2', '5'), ('1', '2', '6'), ('1', '2', '7'), ('1', '2', '8'), ('1', '2', '9'), ('1', '3', '2'), ('1', '3', '4'), ('1', '3', '5'), ('1', '3', '6'), ('1', '3', '7'), ('1', '3', '8'), ('1', '3', '9'), ('1', '4', '2'), ('1', '4', '3'), ('1', '4', '5'), ('1', '4', '6'), ('1', '4', '7'), ('1', '4', '8'), ('1', '4', '9'), ('1', '5', '2'), ('1', '5', '3'), ('1', '5', '4'), ('1', '5', '6'), ('1', '5', '7'), ('1', '5', '8'), ('1', '5', '9'), ('1', '6', '2'), ('1', '6', '3'), ('1', '6', '4'), ('1', '6', '5'), ('1', '6', '7'), ('1', '6', '8'), ('1', '6', '9'), ('1', '7', '2'), ('1', '7', '3'), ('1', '7', '4'), ('1', '7', '5'), ('1', '7', '6'), ('1', '7', '8'), ('1', '7', '9'), ('1', '8', '2'), ('1', '8', '3'), ('1', '8', '4'), ('1', '8', '5'), ('1', '8', '6'), ('1', '8', '7'), ('1', '8', '9'), ('1', '9', '2'), ('1', '9', '3'), ('1', '9', '4'), ('1', '9', '5'), ('1', '9', '6'), ('1', '9', '7'), ('1', '9', '8'), ('2', '1', '3'), ('2', '1', '4'), ('2', '1', '5'), ('2', '1', '6'), ('2', '1', '7'), ('2', '1', '8'), ('2', '1', '9'), ('2', '3', '1'), ('2', '3', '4'), ('2', '3', '5'), ('2', '3', '6'), ('2', '3', '7'), ('2', '3', '8'), ('2', '3', '9'), ('2', '4', '1'), ('2', '4', '3'), ('2', '4', '5'), ('2', '4', '6'), ('2', '4', '7'), ('2', '4', '8'), ('2', '4', '9'), ('2', '5', '1'), ('2', '5', '3'), ('2', '5', '4'), ('2', '5', '6'), ('2', '5', '7'), ('2', '5', '8'), ('2', '5', '9'), ('2', '6', '1'), ('2', '6', '3'), ('2', '6', '4'), ('2', '6', '5'), ('2', '6', '7'), ('2', '6', '8'), ('2', '6', '9'), ('2', '7', '1'), ('2', '7', '3'), ('2', '7', '4'), ('2', '7', '5'), ('2', '7', '6'), ('2', '7', '8'), ('2', '7', '9'), ('2', '8', '1'), ('2', '8', '3'), ('2', '8', '4'), ('2', '8', '5'), ('2', '8', '6'), ('2', '8', '7'), ('2', '8', '9'), ('2', '9', '1'), ('2', '9', '3'), ('2', '9', '4'), ('2', '9', '5'), ('2', '9', '6'), ('2', '9', '7'), ('2', '9', '8'), ('3', '1', '2'), ('3', '1', '4'), ('3', '1', '5'), ('3', '1', '6'), ('3', '1', '7'), ('3', '1', '8'), ('3', '1', '9'), ('3', '2', '1'), ('3', '2', '4'), ('3', '2', '5'), ('3', '2', '6'), ('3', '2', '7'), ('3', '2', '8'), ('3', '2', '9'), ('3', '4', '1'), ('3', '4', '2'), ('3', '4', '5'), ('3', '4', '6'), ('3', '4', '7'), ('3', '4', '8'), ('3', '4', '9'), ('3', '5', '1'), ('3', '5', '2'), ('3', '5', '4'), ('3', '5', '6'), ('3', '5', '7'), ('3', '5', '8'), ('3', '5', '9'), ('3', '6', '1'), ('3', '6', '2'), ('3', '6', '4'), ('3', '6', '5'), ('3', '6', '7'), ('3', '6', '8'), ('3', '6', '9'), ('3', '7', '1'), ('3', '7', '2'), ('3', '7', '4'), ('3', '7', '5'), ('3', '7', '6'), ('3', '7', '8'), ('3', '7', '9'), ('3', '8', '1'), ('3', '8', '2'), ('3', '8', '4'), ('3', '8', '5'), ('3', '8', '6'), ('3', '8', '7'), ('3', '8', '9'), ('3', '9', '1'), ('3', '9', '2'), ('3', '9', '4'), ('3', '9', '5'), ('3', '9', '6'), ('3', '9', '7'), ('3', '9', '8'), ('4', '1', '2'), ('4', '1', '3'), ('4', '1', '5'), ('4', '1', '6'), ('4', '1', '7'), ('4', '1', '8'), ('4', '1', '9'), ('4', '2', '1'), ('4', '2', '3'), ('4', '2', '5'), ('4', '2', '6'), ('4', '2', '7'), ('4', '2', '8'), ('4', '2', '9'), ('4', '3', '1'), ('4', '3', '2'), ('4', '3', '5'), ('4', '3', '6'), ('4', '3', '7'), ('4', '3', '8'), ('4', '3', '9'), ('4', '5', '1'), ('4', '5', '2'), ('4', '5', '3'), ('4', '5', '6'), ('4', '5', '7'), ('4', '5', '8'), ('4', '5', '9'), ('4', '6', '1'), ('4', '6', '2'), ('4', '6', '3'), ('4', '6', '5'), ('4', '6', '7'), ('4', '6', '8'), ('4', '6', '9'), ('4', '7', '1'), ('4', '7', '2'), ('4', '7', '3'), ('4', '7', '5'), ('4', '7', '6'), ('4', '7', '8'), ('4', '7', '9'), ('4', '8', '1'), ('4', '8', '2'), ('4', '8', '3'), ('4', '8', '5'), ('4', '8', '6'), ('4', '8', '7'), ('4', '8', '9'), ('4', '9', '1'), ('4', '9', '2'), ('4', '9', '3'), ('4', '9', '5'), ('4', '9', '6'), ('4', '9', '7'), ('4', '9', '8'), ('5', '1', '2'), ('5', '1', '3'), ('5', '1', '4'), ('5', '1', '6'), ('5', '1', '7'), ('5', '1', '8'), ('5', '1', '9'), ('5', '2', '1'), ('5', '2', '3'), ('5', '2', '4'), ('5', '2', '6'), ('5', '2', '7'), ('5', '2', '8'), ('5', '2', '9'), ('5', '3', '1'), ('5', '3', '2'), ('5', '3', '4'), ('5', '3', '6'), ('5', '3', '7'), ('5', '3', '8'), ('5', '3', '9'), ('5', '4', '1'), ('5', '4', '2'), ('5', '4', '3'), ('5', '4', '6'), ('5', '4', '7'), ('5', '4', '8'), ('5', '4', '9'), ('5', '6', '1'), ('5', '6', '2'), ('5', '6', '3'), ('5', '6', '4'), ('5', '6', '7'), ('5', '6', '8'), ('5', '6', '9'), ('5', '7', '1'), ('5', '7', '2'), ('5', '7', '3'), ('5', '7', '4'), ('5', '7', '6'), ('5', '7', '8'), ('5', '7', '9'), ('5', '8', '1'), ('5', '8', '2'), ('5', '8', '3'), ('5', '8', '4'), ('5', '8', '6'), ('5', '8', '7'), ('5', '8', '9'), ('5', '9', '1'), ('5', '9', '2'), ('5', '9', '3'), ('5', '9', '4'), ('5', '9', '6'), ('5', '9', '7'), ('5', '9', '8'), ('6', '1', '2'), ('6', '1', '3'), ('6', '1', '4'), ('6', '1', '5'), ('6', '1', '7'), ('6', '1', '8'), ('6', '1', '9'), ('6', '2', '1'), ('6', '2', '3'), ('6', '2', '4'), ('6', '2', '5'), ('6', '2', '7'), ('6', '2', '8'), ('6', '2', '9'), ('6', '3', '1'), ('6', '3', '2'), ('6', '3', '4'), ('6', '3', '5'), ('6', '3', '7'), ('6', '3', '8'), ('6', '3', '9'), ('6', '4', '1'), ('6', '4', '2'), ('6', '4', '3'), ('6', '4', '5'), ('6', '4', '7'), ('6', '4', '8'), ('6', '4', '9'), ('6', '5', '1'), ('6', '5', '2'), ('6', '5', '3'), ('6', '5', '4'), ('6', '5', '7'), ('6', '5', '8'), ('6', '5', '9'), ('6', '7', '1'), ('6', '7', '2'), ('6', '7', '3'), ('6', '7', '4'), ('6', '7', '5'), ('6', '7', '8'), ('6', '7', '9'), ('6', '8', '1'), ('6', '8', '2'), ('6', '8', '3'), ('6', '8', '4'), ('6', '8', '5'), ('6', '8', '7'), ('6', '8', '9'), ('6', '9', '1'), ('6', '9', '2'), ('6', '9', '3'), ('6', '9', '4'), ('6', '9', '5'), ('6', '9', '7'), ('6', '9', '8'), ('7', '1', '2'), ('7', '1', '3'), ('7', '1', '4'), ('7', '1', '5'), ('7', '1', '6'), ('7', '1', '8'), ('7', '1', '9'), ('7', '2', '1'), ('7', '2', '3'), ('7', '2', '4'), ('7', '2', '5'), ('7', '2', '6'), ('7', '2', '8'), ('7', '2', '9'), ('7', '3', '1'), ('7', '3', '2'), ('7', '3', '4'), ('7', '3', '5'), ('7', '3', '6'), ('7', '3', '8'), ('7', '3', '9'), ('7', '4', '1'), ('7', '4', '2'), ('7', '4', '3'), ('7', '4', '5'), ('7', '4', '6'), ('7', '4', '8'), ('7', '4', '9'), ('7', '5', '1'), ('7', '5', '2'), ('7', '5', '3'), ('7', '5', '4'), ('7', '5', '6'), ('7', '5', '8'), ('7', '5', '9'), ('7', '6', '1'), ('7', '6', '2'), ('7', '6', '3'), ('7', '6', '4'), ('7', '6', '5'), ('7', '6', '8'), ('7', '6', '9'), ('7', '8', '1'), ('7', '8', '2'), ('7', '8', '3'), ('7', '8', '4'), ('7', '8', '5'), ('7', '8', '6'), ('7', '8', '9'), ('7', '9', '1'), ('7', '9', '2'), ('7', '9', '3'), ('7', '9', '4'), ('7', '9', '5'), ('7', '9', '6'), ('7', '9', '8'), ('8', '1', '2'), ('8', '1', '3'), ('8', '1', '4'), ('8', '1', '5'), ('8', '1', '6'), ('8', '1', '7'), ('8', '1', '9'), ('8', '2', '1'), ('8', '2', '3'), ('8', '2', '4'), ('8', '2', '5'), ('8', '2', '6'), ('8', '2', '7'), ('8', '2', '9'), ('8', '3', '1'), ('8', '3', '2'), ('8', '3', '4'), ('8', '3', '5'), ('8', '3', '6'), ('8', '3', '7'), ('8', '3', '9'), ('8', '4', '1'), ('8', '4', '2'), ('8', '4', '3'), ('8', '4', '5'), ('8', '4', '6'), ('8', '4', '7'), ('8', '4', '9'), ('8', '5', '1'), ('8', '5', '2'), ('8', '5', '3'), ('8', '5', '4'), ('8', '5', '6'), ('8', '5', '7'), ('8', '5', '9'), ('8', '6', '1'), ('8', '6', '2'), ('8', '6', '3'), ('8', '6', '4'), ('8', '6', '5'), ('8', '6', '7'), ('8', '6', '9'), ('8', '7', '1'), ('8', '7', '2'), ('8', '7', '3'), ('8', '7', '4'), ('8', '7', '5'), ('8', '7', '6'), ('8', '7', '9'), ('8', '9', '1'), ('8', '9', '2'), ('8', '9', '3'), ('8', '9', '4'), ('8', '9', '5'), ('8', '9', '6'), ('8', '9', '7'), ('9', '1', '2'), ('9', '1', '3'), ('9', '1', '4'), ('9', '1', '5'), ('9', '1', '6'), ('9', '1', '7'), ('9', '1', '8'), ('9', '2', '1'), ('9', '2', '3'), ('9', '2', '4'), ('9', '2', '5'), ('9', '2', '6'), ('9', '2', '7'), ('9', '2', '8'), ('9', '3', '1'), ('9', '3', '2'), ('9', '3', '4'), ('9', '3', '5'), ('9', '3', '6'), ('9', '3', '7'), ('9', '3', '8'), ('9', '4', '1'), ('9', '4', '2'), ('9', '4', '3'), ('9', '4', '5'), ('9', '4', '6'), ('9', '4', '7'), ('9', '4', '8'), ('9', '5', '1'), ('9', '5', '2'), ('9', '5', '3'), ('9', '5', '4'), ('9', '5', '6'), ('9', '5', '7'), ('9', '5', '8'), ('9', '6', '1'), ('9', '6', '2'), ('9', '6', '3'), ('9', '6', '4'), ('9', '6', '5'), ('9', '6', '7'), ('9', '6', '8'), ('9', '7', '1'), ('9', '7', '2'), ('9', '7', '3'), ('9', '7', '4'), ('9', '7', '5'), ('9', '7', '6'), ('9', '7', '8'), ('9', '8', '1'), ('9', '8', '2'), ('9', '8', '3'), ('9', '8', '4'), ('9', '8', '5'), ('9', '8', '6'), ('9', '8', '7')]
def make_new_per(answer, all_cases, b, s):
result = []
for com in all_cases:
temp_b, temp_s = 0,0
for i, c in enumerate(com):
# 해당 숫자에 대해 숫자 야구 게임 진행
if c == answer[i]: # 위치가 같다면 strike
temp_s += 1
elif c in answer: # 존재만 한다면 ball
temp_b += 1
# strike 수와 ball 수가 같다면
if temp_b == int(b) and temp_s == int(s):
result.append(com)
return result
num_cases = list(permutations('123456789', 3))
n = int(input())
for i in range(n):
answer, s, b = input().split()
answer = tuple(answer)
num_cases = make_com(answer, num_cases, b, s)
print(len(num_cases))
경우를 만드는 접근 방식이 다양할 수 있어서 나름 재미있었다.
처음에 문제를 어떻게 풀어야할지가 좀 이해가 가지 않았는데
사실 직관적으로 이렇게 하면 되겠다라고 생각해서
입력받은 숫자로 다시 숫자 야구를 진행하는 방식으로 진행했더니 성공하였다.
,를 붙이기