2020년/코테
[코테 연습]숫자 야구
위지원
2020. 4. 26. 18:19
문제 설명
숫자 야구 게임이란 2명이 서로가 생각한 숫자를 맞추는 게임입니다. 게임해보기
각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다.
* 숫자는 맞지만, 위치가 틀렸을 때는 볼
* 숫자와 위치가 모두 맞을 때는 스트라이크
* 숫자와 위치가 모두 틀렸을 때는 아웃
def check(number, allNum):
qNum = str(number[0])
qStrike = number[1]
qBalls = number[2]
candiArr = []
for n in allNum:
strikes, balls = (0,0)
for j in range(3):
if qNum[j] == n[j]:
strikes += 1
elif qNum[j] in n:
balls += 1
if (strikes, balls) == (qStrike, qBalls):
candiArr.append(n)
return candiArr
def solution(baseball):
rNum = [str(x) for x in range(1,10)]
canNum = [
rNum[x]+rNum[y]+rNum[z]
for x in range(9)
for y in range(9)
for z in range(9)
if x!=y and y!=z and z!=x
]
for qusition in baseball:
canNum = check(qusition, canNum)
answer = len(canNum)
return answer
이번 문제는 갈피도 못 잡겠어서 결국 다른 풀이의 도움을 얻어 해결했다.
WOW 해결방법은 간단했다.. 그냥 모든 수를 다 생성해서 후보군을 제거하는 방법이였다.
하지만 난 그런것도 생각못하는 바보멍챙 ㅠㅠ 코테를 하루에 100개씩은 풀어야 초보자 타이틀이라도 달려나..(한숨)