N

(SWEA c++)6900. 주혁이의 복권 당첨 본문

SW Expert Academy

(SWEA c++)6900. 주혁이의 복권 당첨

naeunchan 2020. 11. 20. 17:13
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWh4FhG6Ei4DFAXp&categoryId=AWh4FhG6Ei4DFAXp&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

문자열을 비교하면 된다.

완전탐색을 하는데, '*'은 아무 숫자가 가능하니 continue로 넘어가주고,

'*'이 아니면 비교를 하여 flag를 바꿔주면 된다.

만약 비교 중 같지 않다면 바로 break를 해주면 된다.

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        int n, m, ans = 0;
        vector<pair<string, int>> v;
        vector<string> user;
        
        cin >> n >> m;
        
        for(int i = 0; i < n; i++)
        {
            string s;
            int money;
            cin >> s >> money;
            v.push_back(make_pair(s, money));
        }
        
        for(int i = 0; i < m; i++)
        {
            string s;
            cin >> s;
            user.push_back(s);
        }
        
        for(int i = 0; i < m; i++)
        {
            for(int j = 0; j < n; j++)
            {
                bool check = false;
                for(int k = 0; k < 8; k++)
                {
                    if(v[j].first[k] == '*')
                       continue;
                    if(user[i][k] == v[j].first[k])
                        check = true;
                    else
                    {
                        check = false;
                        break;
                    }
                }
                if(check)
                    ans += v[j].second;
            }
        }
        cout << "#" << tc << " " << ans << endl;
    }
    return 0;
}
728x90
반응형