카테고리 없음

백준 7682) 틱택토 (python)

밈98 2024. 3. 21. 11:37

 

def tickto(arr, t):

    if t == arr[0] == arr[1] == arr[2]:
        return True
    if t == arr[3] ==arr[4] ==arr[5]:
        return True
    if t == arr[6] == arr[7] == arr[8]:
        return True
    if t ==arr[0] == arr[4] ==arr[8]:
        return True
    if t == arr[2] == arr[4] == arr[6]:
        return True
    if t == arr[0] == arr[3] == arr[6]:
        return True
    if t == arr[1] == arr[4] == arr[7]:
        return True
    if t == arr[2] == arr[5] == arr[8]:
        return True

    return False

while True:
    a = input()
    if a == "end":
        break
    else:
        flag = True
        arr = list(map(str, a))
        xcnt = arr.count('X')
        ocnt = arr.count('O')

        if xcnt > ocnt+1:
            print("invalid")
            continue

        if ocnt == xcnt :
            if tickto(arr,'O') and not tickto(arr, 'X'):
                print("valid")
                continue

        if ocnt >xcnt :
            print("invalid")
            continue
        if ocnt +1 == xcnt :
            if tickto(arr,'X') and not tickto(arr,'O'):
                print("valid")
                continue
        if xcnt == 5 and ocnt ==4:
            if not tickto(arr, "O"):
                print("valid")
                continue

        print("invalid")

https://www.acmicpc.net/problem/7682

 

7682번: 틱택토

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 줄은 9개의 문자를 포함하며, 'X', 'O', '.' 중 하나이다. '.'은 빈칸을 의미하며, 9개의 문자는 게임판에서 제일 윗 줄 왼쪽부터의 순서이다. 입

www.acmicpc.net

 

기준점 : x의 개수 / o의 개수

 

함수안은 틱택토가 되는 라인을 True 로 내보내는 방식으로

갯수를 기준으로 틱택토가 되는 것을 뽑아낸다~!