홍시홍의 프로그래밍

[백준 10774] 저지 본문

알고리즘 문제풀이/백준

[백준 10774] 저지

홍시홍 2020. 3. 2. 22:15

https://www.acmicpc.net/problem/10774

 

10774번: 저지

문제 학교 대표팀은 1부터 번호가 매겨진 저지를 학생 선수들에게 배분하고자 한다. 저지의 사이즈는 S, M, L 중 하나이다 (물론 S=small, M=medium, L=Large다). 각각의 선수들은 구체적인 저지의 번호와 선호하는 사이즈를 요구했다. 선수들은 만약 자신이 원했던 번호가 아니거나, 선호하는 사이즈보다 작은 사이즈의 옷을 받으면 불만이 생길 것이다. 그들을 만족시키기 위해서는, 요구하는 번호가 맞고 사이즈는 같거나 그 이상이어야 한다. 두

www.acmicpc.net

 

요구사항

저지를 받을 수 있는 사람의 최대 수 구하기

 

풀이

Union-Find로 분류 되어있으나, 주어지는 입력이 1,000,000이므로 그냥 탐색으로도 풀린다. 

 

#include <iostream>
#include <queue>
#include <math.h>
#include <algorithm>
#include <functional>
using namespace std;

struct go {
	bool visit;
	char size;
};
int judgeNum;
int playerNum;
go map[1000010];
int main() {
	int ans = 0;
	scanf("%d%d", &judgeNum, &playerNum);
	for (int i = 1; i <= judgeNum; i++) {
		char ch;
		scanf(" %c", &ch);
		map[i].size = ch;
		map[i].visit = false;
	}
	for (int i = 1; i <= playerNum; i++) {
		char ch;
		int x;
		scanf(" %c%d", &ch,&x);
		if (map[x].visit == true)
			continue;
		else {
			if (ch == 'S') {
				map[x].visit = true;
				ans++;
			}
			else if (ch == 'M') {
				if (map[x].size == 'M' || map[x].size == 'L')
				{
					map[x].visit = true;
					ans++;
				}
			}
			else if (ch == 'L') {
				if (map[x].size == 'L')
				{
					map[x].visit = true;
					ans++;
				}
			}

		}
		
	}
	cout << ans << endl;
}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

[백준 6118] 숨바꼭질  (0) 2020.03.04
[백준 1620] 나는야 포켓몬 마스터  (0) 2020.03.02
[백준 4343] Arctic Network  (0) 2020.03.02
[백준 1377] 버블 소트  (0) 2020.02.29
[백준 1715] 카드 정렬하기  (0) 2020.02.29
Comments