[C++] BOJ 25757 (S5) 임스와 함께하는 미니게임

넘칠 연·2023년 8월 9일

BOJ

목록 보기
7/7

BOJ 25757 (S5) 임스와 함께하는 미니게임

문제 요약

3종류의 게임 윷놀이(Y,2인), 같은 그림 찾기(F,3인), 원카드(O,4인) 중 하나의 게임에 대해 여러 대결 신청 정보를 받아 총 대진 수를 구해보자.
(단, 대결을 희망하는 사람은 대진에 단 한 번만 참여할 수 있다.)

풀이 방향

동일한 원소를 여러 개 허용하지 않는 자료구조 set을 활용하여 문제를 해결해 보자.

제출 답안

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

int main() {
    int n,people; char c;
    //윷놀이(Y,2), 같은그림찾기(F,3), 원카드(O,4) 
    cin >> n >> c;
    if(c=='Y') people=2-1;
    else if(c=='F') people=3-1;
    else people=4-1; //'O'

    set<string> s;
    for(int i=0; i<n; i++) {
        string str; cin >> str;
        s.insert(str);
    }
    cout << s.size()/people;
    return 0;
}

답안 해설

게임에는 항상 주최자인 임스가 포함된다.
즉, 윷놀이-같은그림찾기-원카드 게임 대진에 필요한 인원을 1-2-3으로 설정하여 리스트를 점검해야 한다.

게임 정원이 채워지지 않으면 게임을 진행할 수 없다.
따라서 int 나눗셈으로 몫만을 구해주었다.

번외로, 윷놀이-같은그림찾기-원카드의 게임별 대진 정보가 섞여서 제공될 때에는 map을 활용하면 좋을 것 같다.

이 문제와 관련된 좋은 문제
BOJ 14425 (S3) 문자열 집합
BOJ 1269 (S4) 대칭 차집합

추가로 읽어보면 좋은 내용

  • cpp stl set 라이브러리 내장함수
profile
멋지게 될 기회를 놓치지 말라 - 티나 실리그

0개의 댓글