그림 B.1: 할리갈리
《할리갈리》는 단추가 달린 종 하나와 과일이 그려진 카드들로 구성된 보드게임입니다.
카드에는 총
종류의 과일이 최대
개까지 그려져 있습니다. 그려진 과일의 종류는 딸기, 바나나, 라임, 그리고 자두입니다.
게임을 시작할 때 플레이어들은 카드 뭉치를 공평하게 나눠가지며 자신이 가진 카드를 전부 소모하면 패배합니다.
게임은 시작 플레이어가 본인의 카드 뭉치에서 카드 한 장을 공개하는 것으로 시작합니다. 이후 반시계 방향으로 돌아가며 본인의 카드를 한 장씩 공개합니다.
펼쳐진 카드들 중 한 종류 이상의 과일이 정확히
개 있는 경우 종을 눌러야 하며 가장 먼저 종을 누른 플레이어가 모든 카드를 모아 자신의 카드 뭉치 아래에 놓습니다. 종을 잘못 누른 경우 다른 모든 플레이어에게 카드를 한 장씩 나누어줘야 합니다.
《할리갈리》를 처음 해보는 한별이는 할리갈리 고수인 히나에게 이기기 위해 여러분에게 도움을 청했습니다. 한별이를 도와 펼쳐진 카드들의 목록이 주어졌을 때, 한별이가 종을 쳐야 하는지 알려주세요.
첫 번째 줄에 펼쳐진 카드의 개수
이 주어집니다.
두 번째 줄부터
개의 줄에 걸쳐 한 줄에 하나씩 펼쳐진 카드의 정보가 주어집니다.
카드의 정보는 공백으로 구분된, 과일의 종류를 나타내는 문자열
와 과일의 개수를 나타내는 양의 정수
로 이루어져 있습니다.
는 STRAWBERRY, BANANA, LIME, PLUM 중 하나입니다.
한별이가 종을 쳐야 하면 YES을, 아니면 NO를 출력해주세요.
입력으로 주어지는 모든 수는 정수입니다.
3
BANANA 2
PLUM 4
BANANA 3
YES
4
STRAWBERRY 1
BANANA 2
LIME 3
PLUM 4
NO
2
LIME 5
LIME 1
NO
2
BANANA 5
BANANA 5
NO
기껏 열심히 다 하고 저장해서 포스팅했더니
다 사라졌네?ㅎㅎㅎㅎㅎ
다시 작성해보자... 아 억울하네 짜증나네 ㅎㅎ
아 미쳤나봐 또 저장이 안돼 ㅡㅡㅡㅡ
벌써 3번째 기입이라 그냥 정답 코드만 적겠다.. 아니 그냥 간략하게만
아 오반데 벨로그 머하냐
import sys
def check_halligalli():
input = sys.stdin.read
data = input().split()
N = int(data[0])
cards = {}
#1부터 2*N까지 2씩 증가하는 for문
for i in range(1, 2*N, 2):
card = data[i] # [STRAWBERRY, 1, BANANA, 2]
count = int(data[i+1])
if card in cards:
cards[card] += count
else:
cards[card] = count
for count in cards.values():
if count == 5:
return "YES"
return "NO"
result = check_halligalli()
print(result)
진짜 3번쨰 적는건데 또 저장 안되기만해봐라.... 제발