본문 바로가기
programming/알고스팟

알고스팟 - 튜토리얼 XHAENEUNG

by Ryuuu 2020. 5. 16.

코드가 좀 난잡하다.... 

입력한 숫자와 db를 한자리씩 비교하였다.

여기서 seven같이 같은 문자가 여러개 들어가는 경우가 있어서 찾아진 것은 *로 치환하였다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
    vector<string> to_ten{"zero","one","two","three","four","five","six","seven","eight","nine","ten"};
    vector<string> input_result;
    vector<int> last_result;
    char con_tmp;
    string ori="";
    string mix="";
    string result_tmp="";
    char tmp;
    vector<int> int_ori;
    vector<int> int_mix;
    vector<char> con;
    int num,i,j,index,find,cnt;
    int calc;
     
     
    cin >> num;                      
     
    for(i = 0; i < num; i++){
        cin >> ori >> con_tmp >> mix >> tmp >> result_tmp;
         
        con.push_back(con_tmp);
        input_result.push_back(result_tmp);
        for(j = 0; j < 11; j++){
         
            if ( to_ten[j].compare(ori) == 0 )
                int_ori.push_back(j);
         
            if ( to_ten[j].compare(mix) == 0 )
                int_mix.push_back(j);
                 
        }
 
    }
    for(i = 0; i < num; i++){
        switch(con[i]){
            case '+':
                last_result.push_back(int_ori[i]+int_mix[i]);
                break;
            case '-':
                last_result.push_back(int_ori[i]-int_mix[i]);
                break;
            case '*':
                last_result.push_back(int_ori[i]*int_mix[i]);
                break;
        }
         
    }
 
     
     
    for(i = 0; i < num; i++){
        if(last_result[i] < 0 || last_result[i] > 10){
            cout << "No" << endl;
        }
        else{
            index = last_result[i];
            cnt = 0;
            for(j = 0; j < input_result[i].length(); j++){
                find = input_result[i].find(to_ten[index][j]);
                if(find != -1){
                    input_result[i][find] = '*';
                    cnt++;
                }
            }
             
            if(cnt ==input_result[i].length())
                cout << "Yes" << endl;
            else
                cout << "No" << endl;
        }
    }

댓글