본문 바로가기

CodingTest/SW Expert Academy

[ SW Expert Academy ] 5203. 베이비진 게임

아.. 이 문제 가지고 의외로 헤맸다..

정말 어이 없게도 인덱스와 값을 헷갈려서 .....

................

..........

.....

..

.

왜 이런 단순한 문제도 이해 못 하나.. 하고 울적해질 뻔 했는데 실수 문제였다니 그나마 다행인 것 같기도 하고..

 

1차 시도. [10 / 10] Pass

인덱스로 인한 런타임에러여서 아예 초장부터 망한거라 제출 자체는 1차시도만에 패스.

def isRun(player, k):
    
    if k < 8 and player[k] and player[k+1] and player[k+2]:
        return True
    if 0 < k and k < 9 and player[k-1] and player[k] and player[k+1]:
        return True
    if 1 < k and player[k-2] and player[k-1] and player[k]:
        return True

    return False


def isTriplet(player, k):

    if player[k] >= 3:
        return True

    return False

if __name__ == '__main__':
    T = int(input())
    for test_case in range(1, T + 1):
        cards = list(map(int, input().split()))
        player_1 = [0] * 10
        player_2 = [0] * 10
        winner = 0
        for i in range(len(cards)):
            if i % 2 == 0:
                player_1[cards[i]] += 1
                if isRun(player_1, cards[i]) or isTriplet(player_1, cards[i]):
                    winner = 1
                    break
            else:
                player_2[cards[i]] += 1
                if isRun(player_2, cards[i]) or isTriplet(player_2, cards[i]):
                    winner = 2
                    break

        print("#{} {}".format(test_case, winner))