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

 

10774번: 저지

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

www.acmicpc.net


문제해설

이 문제의 분류가 Disjoint-set 인데 , 진짜 일차원적인 Disjoint-set 인문제같습니다.

그냥 if로 경우 잘나누면 되는 문제입니다.


전체코드

#include <iostream>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;

#define MAX_J 1000000
char arr[MAX_J + 1];

int main() {
     ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
     int J; cin >> J;
     int A; cin >> A;
     for (int i = 1; i <= J; i++) {
          cin >> arr[i];
     }
     int ans = 0;
     for (int i = 0; i < A; i++) {
          char tag; int num;
          cin >> tag >> num;
          if (arr[num] == 'S') {
               if (tag == 'S') {
                    arr[num] = 'X';
                    ans++;
               }
          }
          else if (arr[num] == 'M') {
               if ( tag == 'M' || tag == 'S') {
                    arr[num] = 'X';
                    ans++;
               }
          }
          else if (arr[num] == 'L') {
               if (tag == 'L' || tag == 'M' || tag == 'S') {
                    arr[num] = 'X';
                    ans++;
               }
          }
     }
     cout << ans << "\n";
}

 

 

'알고리즘 > [C++]BOJ' 카테고리의 다른 글

[BOJ백준] 5574 산책  (0) 2019.10.09
[백준BOJ] 5012 불만 정렬  (0) 2019.10.07
[백준BOJ] 3006 터보소트  (0) 2019.10.06

+ Recent posts