0-1 수열 문제 왜 WA가 뜰까요? (소스포함)

  • 홍환민
    홍환민

    http://algospot.com/problems/read/ZEROONE

    아래와 같이 작성했습니다.
    value 배열이 입력된 수열이고, group 배열을 value랑 같은 크기로 잡고 각각에 그룹에 해당하는 일련번호를 대입합니다.
    입력된 범위의 값이 00000 식이거나 111111 일 경우에 최대값 최소값이 같은 것이므로,
    시작, 끝 범위의 일련번호가 다르면 0->1, 1->0으로의 변화가 한번이상 있었던 것이다 라는 것을 이용해서 풀었는데요.
    수동으로 해보면 잘 나오는거 같은데, 채점을 해보면 WA 라고 나오네요.

    scanf("%s", &value); 이 부분은 수정했습니다. 기초적인 실수를 했네요.
    그래도 WA라고 뜨네요. 흠.

    #include <stdio.h>
    
    #define MAX_LENGTH 1000000
    
    char value[MAX_LENGTH+1];
    int  group[MAX_LENGTH+1];
    
    int main(int argc, char* argv[])
    {
      scanf("%s", value);
    
      int groupNumber = 0;
      char v = NULL;
    
      for( int i=0; i < MAX_LENGTH; i++ )
      {
        if( value[i] == NULL )
          break;
    
        if( value[i] != v )
        {
          v = value[i];
          groupNumber++;
        }
    
        group[i] = groupNumber;
      }
    
      int count, startIndex, endIndex;
    
      scanf("%d", &count);
    
      for( int i=0; i < count; i++ )
      {
        scanf("%d %d", &startIndex, &endIndex);
    
        if( group[startIndex] == group[endIndex] )
          printf("Yes\n");
        else
          printf("No\n");
      }
    
      return 0;
    }
    

    12년 전
2개의 댓글이 있습니다.
  • JongMan
    JongMan

    환민님 안녕하세요. 아무래도 채점 데이터를 서버에서 가져오면서 데이터가 깨져서 발생했던 문제인 것 같습니다. ㅠㅠ 이전에도 한번 발생했던 문젠데 확실히 해결이 안되었던 것 같네요. 이번 수정으로 해결되었길 바랍니다 ㅠㅠ 번거롭게 해드려서 죄송합니다. :)

    마지막 서브미션 리저지했더니 AC 나오는 것 확인했습니다.


    12년 전 link
  • 홍환민
    홍환민

    감사합니다. ^^


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