문제

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

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

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

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

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

입력

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

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

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

출력

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

 

예제 입력 1 

7 Y
lms0806
lms0806
exponentiale
lms0806
jthis
lms0806
leo020630

예제 출력 1 

4

 

풀이코드

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int num = Integer.parseInt(st.nextToken());
        String game = st.nextToken();
        int result = 0;

        Set<String> set = new HashSet<>();

        for(int i = 0; i < num; i++) {
            set.add(br.readLine());
        }
        
        if("Y".equals(game)) {
            result = set.size();
        } else if("F".equals(game)) {
            result = set.size() / 2;
        } else if("O".equals(game)) {
            result = set.size() / 3;
        }

        System.out.println(result);

        br.close();

    }
}

 

미니게임을 플레이하고자 하는 사람 중 동일한 사람과는 게임하지 않기 때문에 인원수에 카운팅될 필요가 없다.

중복 방지를 위해 Set 자료구조에 저장하여 신청한 인원수만을 구한 뒤 임스를 제외한 게임에 필요한 인원수로 나누어 
진행할 수 있는 게임의 횟수를 구할 수 있다.

'알고리즘 > 백준' 카테고리의 다른 글

[백준]숨바꼭질 1697  (1) 2024.01.05
[백준]촌수계산 2644  (1) 2024.01.04
[백준]좋다 1253  (0) 2023.12.13
[백준] 배열돌리기4 17406  (1) 2023.12.07
[백준]감시 15683  (2) 2023.12.06

+ Recent posts