MISPELL 간단한 문제라고 생각했는데 틀렸습니다.

  • HDNua
    HDNua

    안녕하세요?
    오늘 처음으로 algospot에 가입한 HDNua라고 합니다.

    이전까지 Baekjoon Online Judge의 문제를 풀다
    알고리즘 문제 해결 전략 책을 사서 알게 되어 왔습니다.

    HELLOWORLDMERCY를 풀고 자신만만하던 중
    이전에 BOJ에서 통과했던 문제가 있어 그대로 붙여넣었더니
    WA를 받아 질문을 올립니다. 주석은 달았습니다.
    MISPELL

    #include <stdio.h>
    #define MAX_BUFFER_LEN 81
    
    int main(void) {
        int i;
        int t;
        int idx, end;
        char buf[MAX_BUFFER_LEN];
        char *p;
    
        scanf("%d", &t);
        while (t--) { // 테스트 케이스 동안
            scanf("%d %s", &idx, buf);
            // 지울 문자의 인덱스 이전까지만 출력한다
            for (i=0, p=buf, end=idx-1; i<end; ++i) {
                putchar(*p++);
            }
            // 해당 문자는 출력하지 않는다
            ++p;
            // 문장이 끝날 때까지 출력한다
            while (*p) {
                putchar(*p++);
            }
            putchar('\n');
        }
    
        return 0;
    }
    

    공지사항도 읽고 이 글 내용도 봐서 주석을 좀 달았습니다만
    여기서 어떻게 더 설명할 방법이 떠오르지 않네요..
    위에도 말씀드렸듯 애초에 다른 사이트에서는 통과했던 문제라
    이상한 점이 없다고 생각하고 있습니다.

    왜 오답이 떴을지 궁금해서 질문 남겨봅니다.
    읽어주신 분들 모두 감사합니다.


    5년 전
2개의 댓글이 있습니다.
  • hyunhwan
    hyunhwan

    구현은 제대로 된거 같아 보입니다. 다만 출력에 빠진 점이 있네요.


    The dataset number as a decimal integer (start counting at one), a space, and the misspelled word.


    5년 전 link
  • HDNua
    HDNua

    @LIBe
    앗 아이고... 앞 부분을 빼먹었군요. 답변 감사합니다!


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