XHAENEUNG 질문 있습니다.

  • pizzamon
    pizzamon

    XHAENEUNG

    질문있습니다.

    c++ 로 짠 코드인데 자꾸 오답 처리 되는데 어디서 오답처리
    되는지 잘 모르겠네요 ㅠㅠ 도와주세요

    #include <iostream>
    #include <map>
    #include <string>
    #include <sstream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    int Operation(map<string,int>& number, string a, string b, char op) {
    
        switch(op) {
    
            case '+':
                return number[a] + number[b];
                break;
            case '-':
                return number[a] - number[b];
                break;
            case '*':
                return number[a] * number[b];
                break;
            default:
                return -1;
                break;
        }
    };
    
    int main() {
    
        map<string, int> number;
        map<int,string> answer;
        vector<string> output;
    
        number["zero"] = 0;
        number["one"] = 1;
        number["two"] = 2;
        number["three"] = 3;
        number["four"] = 4;
        number["five"] = 5;
        number["six"] = 6;
        number["seven"] = 7;
        number["eight"] = 8;
        number["nine"] = 9;
        number["ten"] = 10;
    
        answer[0] = "zero";
        answer[1] = "one";
        answer[2] = "two";
        answer[3] = "three";
        answer[4] = "four";
        answer[5] = "five";
        answer[6] = "six";
        answer[7] = "seven";
        answer[8] = "eight";
        answer[9] = "nine";
        answer[10] = "ten";
    
        int n;
        cin >> n;
        cin.ignore(1);
    
        for(int i=0; i<n; ++i) {
            string s;
            getline(cin,s);
            string a,b,c;
            char op;
            stringstream line(s);
            line >> a;
            line >> op;
            line >> b;
            line >> c;
            line >> c;
            int ret = Operation(number,a,b,op);     
            if(ret < 0 || ret > 10) {
                output.push_back("NO");
                continue;
            }
            string temp = answer[ret];
            sort(temp.begin(),temp.end());
            sort(c.begin(),c.end());
            if(temp.compare(c) == 0)
                output.push_back("YES");
            else
                output.push_back("NO");     
        }
    
        for(int i=0; i<n; ++i) {
            cout << output[i] << endl;
        }
    }
    


    10년 전
2개의 댓글이 있습니다.
  • 샥후
    샥후

    [17:11] <@kcm1700> 저거는 YES NO가 아니라
    [17:11] <@kcm1700> Yes No죠ㅕ


    10년 전 link
  • pizzamon
    pizzamon

    ㅁㄴㅇㄻㄴㅇㄻㄴㅇㄻㄴㅇㄹ
    감사합니다.
    눈리신이네요 ㅠㅠㅠ


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.