문제 출처

1. 문제설명


  • 미니게임 윷놀이(Y), 같은 그림 찾기(F), 원카드(O)가 있다.
    • 각각은 2, 3, 4명이서 플레이한다.
    • 인원수가 부족하면 게임을 시작할 수 없다.
  • 플레이 횟수(N)과 게임의 종류가 주어진다.
  • 최대 몇 번 게임을 플레이할 수 있는지 구하라



2. 알고리즘 설계


  • 인원의 중복을 체크하고, 한번만 사용
  • 중복을 제외한 인원을 각 인원수로 나눠주면 된다.



3. 로직


  • 중복을 알아서 제거해주는 자료구조!
    • set을 사용한다.


4. 전체 코드


#include <iostream>
#include <set>
#include <string>
using namespace std;

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

	int n; char type;
	cin >> n >> type;

	set<string> s;
	for (int i = 0; i < n; i++) {
		string str;
		cin >> str;
		s.insert(str);
	}
	
	int sz = s.size();
	if (type == 'Y') cout << sz;
	else if (type == 'F') cout << sz / 2;
	else cout << sz / 3;
}