-
문제 설명
숫자 야구 게임이란 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개씩은 풀어야 초보자 타이틀이라도 달려나..(한숨)
'2020년 > 코테' 카테고리의 다른 글
[코테 연습] 1로 만들기 (0) 2020.04.28 [코테 연습] 카펫 (0) 2020.04.26 [코테 연습] 모의고사 python (0) 2020.04.22 [코테 연습] H-Index Python (0) 2020.04.21 [코테 연습] 가장 큰 수 python (0) 2020.04.20