Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

오돌

99클럽 코테 스터디 6일차 TIL - 할리갈리 본문

코테

99클럽 코테 스터디 6일차 TIL - 할리갈리

오형스톤 2024. 11. 2. 18:42

오늘의 문제

백준 - 27160번: 할리갈리

 

문제내용과 풀이

문제 설명

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

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

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

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

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

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

 

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

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

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

 S는 STRAWBERRYBANANALIMEPLUM 중 하나입니다.

 

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

 

제한사항 

  • 1 ≤ s의 길이 ≤ 50
  • s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. 
  • return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.

입출력 예

3
BANANA 2
PLUM 4
BANANA 3
-> YES

 

내 풀이

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        scanner.nextLine(); 

        Map<String, Integer> fruitCount = new HashMap<>();
        fruitCount.put("STRAWBERRY", 0);
        fruitCount.put("BANANA", 0);
        fruitCount.put("LIME", 0);
        fruitCount.put("PLUM", 0);

        for (int i = 0; i < N; i++) {
            String fruit = scanner.next();
            int count = scanner.nextInt();
            scanner.nextLine(); 

            fruitCount.put(fruit, fruitCount.get(fruit) + count);
        }

        boolean bell = false;
        for (int count : fruitCount.values()) {
            if (count == 5) {
                ring = true;
                break;
            }
        }

        if (bell) System.out.println("YES");
        else System.out.println("NO");
        
    }
}