• [코테 연습]숫자 야구

    2020. 4. 26. 18:19

    by. 위지원

    문제 설명

    숫자 야구 게임이란 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개씩은 풀어야 초보자 타이틀이라도 달려나..(한숨)

    profile
    위지원

    데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

    '2020년 > 코테' 카테고리의 다른 글