[알고리즘] Baby-Gin

송왕구·2023년 3월 27일
1

ALGORITHM

목록 보기
1/3

Baby Gin

  • 숫자 카드 6개를 임의로 뽑았을 때, run과 triplet으로 구성되어있는 경우

  • run
    - 연속된 숫자 3개

  • triplet
    - 동일한 숫자 3개

예시 ) 숫자 카드 [0 5 4 0 6 0]을 뽑았을 경우

  • run: 4 5 6
  • trplet: 0 0 0
    -> Baby Gin !!!


baby gin 예제문제 풀이 ( swea 0327 탐욕_베이비진 게임 )

def baby_gin(p):
	# triplet
    
    # player의 패를 담은 상자를 모두 검사한다.
    for i in range(10):
    	# player의 i 카드의 개수가 3이라면
    	if p[i] == 3:
        	return True
    # run 
    # run은 i 카드를 뽑으면 i+1, i+2 카드도 함께 봐야 하므로 range(8).
    for i in range(8):
    	# player가 i, i+1, i+2 카드를 모두 가지고 있다면
    	if p[i] and p[i+1] and p[i+2]:
        	return True
    # triplet과 run에 해당하는 패가 없다면 False를 return한다.
    return False

T = int(input())
for tc in range(1, T+1):
	deck = list(map(int, input().split())
    
    # index 번호를 카드의 번호로, value를 뽑은 카드 개수로 한다.
	p1 = [0] * 10
    p2 = [0] * 10
    # 
    rlt = 0
    # player는 p1부터 하나씩 뽑기 때문에 
    for i in range(0, len(deck)![](https://velog.velcdn.com/images/123xxx/post/5ba95f2b-7fe8-4d64-bb67-68e91e49f1dc/image.jpg)
, 2):
    	p1[deck[i] += 1
        p2[deck[i+1] += 1
        if baby_gin[p1]:
        	rlt = 1
            break
        elif baby_gin[p2]:
        	rlt = 2
            break
   print(f'#{tc} {rlt}')
    
profile
다른 사람들처럼 거창하게 어떤 개발자가 되고 싶은 생각은 없습니다. 그냥 놀듯이 내가 원하는건 모두 할 수 있고 재미있는 삶을 욕망합니다.

0개의 댓글