WORDLENGTH 오답케이스문의

  • tghbjhpark81
    tghbjhpark81

    wordlength 문제를 풀고 있습니다
    원문에 나오는 예제및 여러 경우를 대입해 보아도
    답은 잘 나오고 있으나,
    실제 재출하면 오답으로 나오고 있습니다.
    도저히 오답 케이스가 떠오르지 않아 검색을 해보았지만,
    원하는 답을 얻지 못하여 질문 남깁니다.
    고수님들 답변 부탁드립니다.

    미리 감사합니다


    9년 전
3개의 댓글이 있습니다.
  • riceluxs1t
    riceluxs1t

    물론 저도 처음 시작을 할 때 비슷하게 질문을 하긴 했지만 이런 질문을 보면 정말 난감합니다.. 코드를 주석과 함께 상세히 올려주시면 다른 사람들이 오답 케이스가 어디서 날지 찾는데 도움이 될 겁니다


    9년 전 link
  • kyungsun.oh
    kyungsun.oh

    ㅋㅋ 저희는 채점머신 볼 수 있는 분이 답글 달아주시는 줄 알구.. ㅎ
    근데 이거 입력 문자열이 아예 빈줄일 수도 있는건가요?

    예를들어
    1
    3

    hello-
    world

    인 경우요?


    9년 전 link
  • kyungsun.oh
    kyungsun.oh

    #include
    #include
    #include
    #include

    #define MAXLEN 85 // 각 문장의 길이 (0~80)
    #define MAXLINE 55 // 문장의 줄 수 (~50)

    int main(void) {
    int T, tcase; // 기본변수 : 테스트케이스
    int numLine, lenStr, lenWord, cntWord; // 추가변수 :
    int i, j; // 부가변수 : 루프제어용
    float average, sum;
    char input[MAXLINE*MAXLEN], tmp[MAXLEN];

    setbuf(stdout, NULL);
    scanf("%d", &T);
    
    for (tcase=0; tcase<T; tcase++) {
      sum = lenWord = cntWord = 0;
      input[0] = '\0';
    
        scanf("%d", &numLine);    // 입력받고
        getchar();                // numLine 뒤의 개행문자를 읽고 버림
        for (i=0; i<numLine; i++) {
      gets(tmp);

    // printf("[%s]", tmp);
    lenStr = strlen(input);
    if (input[lenStr-1]=='-' && isalpha(input[lenStr-2])) { // 현재 입력의 끝 두문자가 알파벳+'-'이면
    input[lenStr-1] = '\0'; // 맨 끝의 '-'을 없앤 후
    strcat(input, tmp); // 그 자리부터 tmp를 덧붙임
    }
    else { // 그렇지 않고 개행된 경우
    input[lenStr] = '-'; // 현재 입력의 맨 끝에 '-'을 추가한 후
    input[lenStr+1] = '\0'; // (다음 줄이 빈줄인 경우에도 개행되었음을 표시하게 됨)
    strcat(input, tmp); // tmp를 덧붙임
    }
    }

    lenStr = strlen(input);
    
      for (i=0; i<=lenStr; i++) {
        if (isalpha(input[i])) lenWord++;
        else if (lenWord>0) {
          sum += lenWord;
          lenWord = 0;
          cntWord++;
        }
      }

    // printf("[%s %.3f]\n", input, sum/cntWord);
    printf("%.3f\n", sum/cntWord);
    }

    return 0;
    }

    도움 부탁드려요

    테스트 케이스는
    3

    hello-
    world
    3
    hello-

    world

    을 포함하여 제시된 예제들, 원문의 예제들 등을 해봤습니다.


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