URI 문제 질문입니다.

  • oanoelsis
    oanoelsis
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    void Decode_Show(){
            string in="";
            getline(cin, in);
            int pos=0;
            while((pos=in.find("%20")) != string::npos){
                    in.erase(pos, 3);
                    in.insert(pos, " ");
            }
            while((pos=in.find("%21")) != string::npos){
                    in.erase(pos, 3);
                    in.insert(pos, "!");
            }
            while((pos=in.find("%24")) != string::npos){
                    in.erase(pos, 3);
                    in.insert(pos, "$");
            }
            while((pos=in.find("%25")) != string::npos){
                    in.erase(pos, 3);
                    in.insert(pos, "%");
            }
            while((pos=in.find("%28")) != string::npos){
                    in.erase(pos, 3);
                    in.insert(pos, "(");
            }
            while((pos=in.find("%29")) != string::npos){
                    in.erase(pos, 3);
                    in.insert(pos, ")");
            }
            while((pos=in.find("%2a")) != string::npos){
                    in.erase(pos, 3);
                    in.insert(pos, "*");
            }
            cout << in << endl;
    }
    
    int main(){
            int cases=0;
            cin >> cases;
            cin.ignore();
            if( cases < 1 || cases > 100){
                    return 0;
            }
            while(cases--){
                    Decode_Show();
            }
    }
    

    단순히 스트링을 입력받아서 거기서 디코딩해야할 문자열을 찾고 찾은후 디코딩된 문자열로 대체하는 알고리즘입니다.

    제가 해본 여러예제들은 잘돌아가는데 오답이 나옵니다.

    일단 저 코드가 왜 오답이 나오는지도 궁금하지만 또 궁금한점은

    왜 코딩하는 과정에서 %2a라는 글자를 치는 순간 저 세글자가 주석처리가 되는지 궁금합니다.


    10년 전
5개의 댓글이 있습니다.
  • oanoelsis
    oanoelsis

    아 이거 이 문제 댓글에서 말하시는 함정이 뭔지 누가좀 힌트좀 주시면 안되나요 ㅠㅠ %252a라고 쓰여잇으면 %2a 가 아니라 *로 출력되게도 해보고 아니게도 해봣는데 다오답이네요...........으헝허아허아허아


    10년 전 link
  • VOCList
    VOCList
    1
    %2528
    

    잘 나오나요?


    10년 전 link
  • oanoelsis
    oanoelsis

    %2528 잘 나옵니다. %28로 나오게도 코딩해보앗고 ( 로 나오게도 코딩해봣는데 두경우다 오답이더라구요. 저렇게 나오는 두경우가 모두 틀린건가요?


    10년 전 link
  • Kureyo
    Kureyo

    %2528은 %28로 나와야되는데 현 코드는 (로 나오는거 같네요. 그렇게 수정했다면 그 코드를 제시해주셔야 다른 사람들이 그것에 대해 고민해볼수있지않을까요.


    10년 전 link
  • oanoelsis
    oanoelsis

    아 문제를 찾앗습니다. 감사합니다 ㅠㅠ


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