본문 바로가기

백준/C++

[Baekjoon/C++] 25757번 - 임스와 함께하는 미니게임

[백준] Baekjoon Online Judge

문제로 이동

 

문제

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

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

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

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

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

 

입력

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

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

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

 

출력

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

 


풀이

#include <iostream>
#include <unordered_set>
using namespace std;

unordered_set<string> arr;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int N, need = 3;
	char game;

	cin >> N >> game;

	if (game == 'Y') need = 1;
	else if (game == 'F') need = 2;

	for (int i = 0; i < N; i++) {
		string s;
		cin >> s;

		arr.insert(s);
	}

	cout << arr.size() / need << '\n';

	return 0;
}

set을 사용하여 중복이 없는 게임 플레이를 신청한 사람의 리스트를 만들었다. 그리고 그 값을 게임 플레이어 필요한 인원으로 나눴는데, 이때 각 게임에 필요한 인원의 수는 임스가 무조건 포함되므로 -1을 해줘야 한다.

'백준 > C++' 카테고리의 다른 글

[Baekjoon/C++] 1072번 - 게임  (2) 2024.02.28
[Baekjoon/C++] 2512번 - 예산  (0) 2024.02.27
[Baekjoon/C++] 4659번 - 비밀번호 발음하기  (0) 2024.02.23
[Baekjoon/C++] 8979번 - 올림픽  (0) 2024.02.21
[Baekjoon/C++] 10431번 - 줄세우기  (0) 2024.02.20