[백준] 할리갈리(Python)

규갓 God Gyu·2024년 7월 22일

백준

목록 보기
12/96

문제

그림 B.1: 할리갈리

《할리갈리》는 단추가 달린 종 하나와 과일이 그려진 카드들로 구성된 보드게임입니다.

카드에는 총
44종류의 과일이 최대
55개까지 그려져 있습니다. 그려진 과일의 종류는 딸기, 바나나, 라임, 그리고 자두입니다.

게임을 시작할 때 플레이어들은 카드 뭉치를 공평하게 나눠가지며 자신이 가진 카드를 전부 소모하면 패배합니다.

게임은 시작 플레이어가 본인의 카드 뭉치에서 카드 한 장을 공개하는 것으로 시작합니다. 이후 반시계 방향으로 돌아가며 본인의 카드를 한 장씩 공개합니다.

펼쳐진 카드들 중 한 종류 이상의 과일이 정확히
55개 있는 경우 종을 눌러야 하며 가장 먼저 종을 누른 플레이어가 모든 카드를 모아 자신의 카드 뭉치 아래에 놓습니다. 종을 잘못 누른 경우 다른 모든 플레이어에게 카드를 한 장씩 나누어줘야 합니다.

《할리갈리》를 처음 해보는 한별이는 할리갈리 고수인 히나에게 이기기 위해 여러분에게 도움을 청했습니다. 한별이를 도와 펼쳐진 카드들의 목록이 주어졌을 때, 한별이가 종을 쳐야 하는지 알려주세요.

입력

첫 번째 줄에 펼쳐진 카드의 개수
NN이 주어집니다.

두 번째 줄부터
NN개의 줄에 걸쳐 한 줄에 하나씩 펼쳐진 카드의 정보가 주어집니다.

카드의 정보는 공백으로 구분된, 과일의 종류를 나타내는 문자열
SS와 과일의 개수를 나타내는 양의 정수
XX로 이루어져 있습니다.

SS는 STRAWBERRY, BANANA, LIME, PLUM 중 하나입니다.

출력

한별이가 종을 쳐야 하면 YES을, 아니면 NO를 출력해주세요.

제한

1N1000001 \le N \le 100\,000

1X51 \le X \le 5
입력으로 주어지는 모든 수는 정수입니다.

예제 입력 1

3
BANANA 2
PLUM 4
BANANA 3

예제 출력 1

YES

예제 입력 2

4
STRAWBERRY 1
BANANA 2
LIME 3
PLUM 4

예제 출력 2

NO

예제 입력 3

2
LIME 5
LIME 1

예제 출력 3

NO

예제 입력 4

2
BANANA 5
BANANA 5

예제 출력 4

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)
  • data안에 모든 입력 값 담기
  • 0번째 인덱스는 몇줄인지 나타내는 N
  • 1번째부터 2개간격으로 분류하면 과일은 과일대로 숫자는 숫자대로 나뉨
  • card가 있으면 카운트에 더하고 아니면 그냥 그 key값에 value는 그 카운트인거라고 if문 선언
  • 그래서 하나씩 돌아보면 5개가 있다면 예스 아니면 노
  • print 깔끔하게 넣기 위해 result변수에 담기

진짜 3번쨰 적는건데 또 저장 안되기만해봐라.... 제발

profile
웹 개발자 되고 시포용

0개의 댓글