LECTURE 문제 질문이 있습니다.

  • oanoelsis
    oanoelsis
    #include <iostream>
    #include <string>
    #include <stdio.h>
    #include <list>
    #include <algorithm>
    #include <bitset>
    #include <cstring>
    #include <stdlib.h>
    using namespace std;
    
    struct Substring{
            char subword[2];
            char subnumber;
    };
    
    bool compare(const Substring& lhs, const Substring& rhs){
            return lhs.subnumber < rhs.subnumber;
    }
    
    int main(){
            int cases=0, i=0;
            cin >> cases;
            while(cases--){
                    char* word = (char*)malloc(1001);
                    i=0;
                    list <Substring> Substringlist;
                    list <Substring>::iterator itor;
                    itor=Substringlist.begin();
                    scanf("%s", word);
                    if(strlen(word)>1000 || strlen(word)%2==1){
                            return 0;
                    }
                    i=0;
                    while(*(word+i)!=0){
                            Substring t;
                            t.subword[0]=*(word+i); i++;
                            t.subword[1]=*(word+i); i++;
                            t.subnumber=((t.subword[0]-97)<<4) +(t.subword[1]-97);
     }
                    Substringlist.sort(compare);
                    for(itor=Substringlist.begin(); itor!=Substringlist.end(); itor++){
                    printf("%c%c",itor->subword[0],itor->subword[1]);
                    }
                    printf("\n");
                    free(word);
            }
    }
    

    LECTURE 문제를 풀이하는 코드입니다. 홀수개수의 문장이 들어왓을때와 1000개를 넘는 문자열이 들어왓을때 종료시키는 기능도 포함하였고 문제에서 말한 예제도 잘 돌아갑니다. 근데 답안을 제출하면 계속 오답이라고 나옵니다. ㅠ 오랫동안 고민 해보았는데 해답이 나오지 않아 질문드립니다. ㅠ


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

    그리고 다른 문제에서도 테스트예제가 잘 실행되고 제가 생각하기에는 잘못될 여지가 없는 간단한 코드 에서도 오답이 몇문제에서 계속 나옵니다. ㅠ 게시판의 글들과 자주하는 실수를 보니 아마 입출력의 문제 인것 같은데 어떻게 해결할 수 있는지 모르겠습니다. ㅠ


    10년 전 link
  • astein
    astein

    subnumber 구현에 문제가 있어 보입니다..
    모든 데이터에서 올바르게 동작하는지 테스트해 보세요 :)


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