<백준> 25757

진기명기·2025년 8월 26일

코딩테스트<C++>

목록 보기
130/212

임스와 함께하는 미니게임

문제
임스가 미니게임을 같이할 사람을 찾고 있습니다.
플레이할 미니게임으로는 윷놀이 YY, 같은 그림 찾기 FF, 원카드 OO가 있습니다. 각각 2, 3, 4 명이서 플레이하는 게임이며 인원수가 부족하면 게임을 시작할 수 없습니다.
사람들이 임스와 같이 플레이하기를 신청한 횟수 NN과 임스가 플레이할 게임의 종류가 주어질 때, 최대 몇 번이나 임스와 함께 게임을 플레이할 수 있는지 구하시오.
임스와 여러 번 미니게임을 플레이하고자 하는 사람이 있으나, 임스는 한 번 같이 플레이한 사람과는 다시 플레이하지 않습니다.
임스와 함께 플레이하고자 하는 사람 중 동명이인은 존재하지 않습니다. 임스와 lms0806은 서로 다른 인물입니다.

입력
첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 NN과 같이 플레이할 게임의 종류가 주어진다.
(1N100000)(1 \le N \le 100\,000) 두 번째 줄부터 NN개의 줄에는 같이 플레이하고자 하는 사람들의 이름이 문자열로 주어진다.
(1(1 \le 문자열 길이 20)\le 20)
사람들의 이름은 숫자 또는 영문 대소문자로 구성되어 있다.

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

중복을 제거하기 위해 set 문법을 사용했고, 게임의 총 인원에서 임스를 제외한 나머지 인원을 나눠서 몇 번 플레이하는지 출력하면 된다.

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

	int n;
	char c;
	cin >> n >> c;

	set<string> s;

	while (n--)
	{
		string str;
		cin >> str;

		s.insert(str);
	}

	if (c == 'Y')
		cout << s.size();
	else if (c == 'F')
		cout << s.size() / 2;
	else if (c == 'O')
		cout << s.size() / 3;
}

0개의 댓글