본문 바로가기

Algorithm

SWEA 11454 Baby-gin Game (python)

반응형

11454. Baby-gin Game

D2

비슷한 문제

2021.04.20 - [분류 전체보기] - SWEA 5203 베이비진 게임 (python)

문제

0~9 사이의 숫자 카드에서 임의의 카드 6장을 뽑았을 때
3장의 카드가 연속적인 번호를 갖는 경우를 run이라 하고
3장의 카드가 동일한 번호를 갖는 경우를 triplet이라고 한다.

그리고, 6장의 카드가 run과 triplet으로만 구성된 경우를 baby-gin으로 부른다.

6자리의 숫자를 입력 받아 baby-gin 여부를 판단하는 프로그램을 작성하라.
(baby-gin 일 경우 1, 아닌 경우 0 을 출력한다.)

[입력]
T
카드목록1
...
카드목록T

[출력]
# 1 {답}
...
# T {답}

풀이

T = int(input())

def check_babygin(numbers):
    # counter = [0 for _in range(10)]
    counter = [0]*10

    #  babygin 체크
    is_babygin = 0

    # 카드 장수 세는 과정?
    for number in numbers:
        # 숫자에 해당하는 인덱스에 각각 더해줌
        counter[number] += 1

    # counter 만큼 돌면서 체크
    # for idx in range(len(counter)):

    #
    idx = 0
    while idx < len(counter):
        # triplet check
        if counter[idx]>=3:
            # 카드 세장 버리기
            counter[idx] -= 3
            # babygin 한걸음 다가가기
            is_babygin += 1

            # 숫자가 있는 한 계속 돌게 만들기 위해서 continue 삽입
            continue

        # run check
        # 8,9는 확인할 필요가 없음(뒤에 카드가 없기 때문에)
        if idx < 8:
            if counter [idx] and counter [idx+1] and counter[idx+2]:
                # 연속되는 카드 세장 하나씩 버리기
                counter[idx] -= 1
                counter[idx+1] -= 1
                counter[idx+2] -= 1
                # 베이비진에 한걸음 다가가기
                is_babygin += 1
                # run 역시 두번 체크하기 위한 컨티뉴
                continue


        # 중간 계산 중에 베이비진이 등장 했다면
        if is_babygin == 2:
            return 1

        #  검증하고 나면 다음 idx로 넘어가기
        idx += 1

    #전부 돌때까지 베이비진이 등장하지 않았다면
    if is_babygin !=2:
        return 0


for tc in range(1, T+1):
    numbers = list(map(int, input()))
    # 0 과 1이 나오게 해야한다. (함수에서)
    result =  check_babygin(numbers)

    print("#{} {}".format(tc, result ))
반응형

'Algorithm' 카테고리의 다른 글

BOJ 2217 로프 (python)  (0) 2021.04.20
BOJ 9020 골드바흐의 추측 (python)  (0) 2021.04.20
SWEA 5203 베이비진 게임 (python)  (0) 2021.04.20
SWEA 5202 화물도크 (python)  (0) 2021.04.20
SWEA 5201 컨테이너 운반 (python)  (0) 2021.04.20