[백준] 25757 임스와 함께하는 미니게임 JAVA

·2024년 3월 26일

1일1백준 -Java-

목록 보기
59/60

문제

임스가 미니게임을 같이할 사람을 찾고 있습니다.

플레이할 미니게임으로는 윷놀이 Y, 같은 그림 찾기 F, 원카드 O가 있습니다. 각각 2, 3, 4 명이서 플레이하는 게임이며 인원수가 부족하면 게임을 시작할 수 없습니다.

사람들이 임스와 같이 플레이하기를 신청한 횟수 N과 임스가 플레이할 게임의 종류가 주어질 때, 최대 몇 번이나 임스와 함께 게임을 플레이할 수 있는지 구하시오.

임스와 여러 번 미니게임을 플레이하고자 하는 사람이 있으나, 임스는 한 번 같이 플레이한 사람과는 다시 플레이하지 않습니다.

임스와 함께 플레이하고자 하는 사람 중 동명이인은 존재하지 않습니다. 임스와 lms0806은 서로 다른 인물입니다.

입력

첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 N과 같이 플레이할 게임의 종류가 주어진다. (1 <= N <= 100,000)

두 번째 줄부터 N개의 줄에는 같이 플레이하고자 하는 사람들의 이름이 문자열로 주어진다. (1 <= 문자열 길이 <=20) 

사람들의 이름은 숫자 또는 영문 대소문자로 구성되어 있다.

출력

임스가 최대로 몇 번이나 게임을 플레이할 수 있는지 구하시오.

예제 입력

7 Y
lms0806
lms0806
exponentiale
lms0806
jthis
lms0806
leo020630

예제 출력

4

내가 했던 풀이 방법

  1. 플레이할 사람들의 이름을 HashSet에 넣는다. 이를통해 이름 중복을 방지할 수 있다.
  2. 게임 타입에 따라 플레이할 사람 수에서 필요한 인원-1씩 나눈 값을 출력한다. (-1을 하는 이유는 최대 인원 수에 임스를 포함해야하기 때문이다.)

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");

        int N = Integer.parseInt(input[0]);
        String type = input[1];
        HashSet<String> friend = new HashSet<>();
        for(int i=0; i<N; i++) {
            friend.add(br.readLine());
        }

        switch (type) {
            case "Y":
                System.out.print(friend.size());
                break;
            case "F":
                System.out.print(friend.size()/2);
                break;
            case "O":
                System.out.print(friend.size()/3);
                break;
            default:
                break;
        }
        
    }
}

회고

set 문제는 실버정도의 난이도라면 자바에서는 금방 풀이할 수 있는 것 같다. 다음에 JS로 풀이하게 된다면, 문제를 꼭 다시 풀어봐야겠다.

profile
Frontend🍓

0개의 댓글