zeroone 문제 자꾸 시간초과가 뜹니다..

  • universalee
    universalee
    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    #define MAX 1000001
    
    char arr[MAX];
    int recordArr[MAX];
    
    int main() {
        scanf("%s", arr);
        int n = 0; 
        for (int i = 1; i < int(strlen(arr)); ++i)
        {
            if (arr[i - 1] != arr[i]) recordArr[i] = ++n;
            else recordArr[i] = n;
        }
        int C;
        scanf("%d", &C);
        for (int a = 0; a < C; ++a)
        {
            int i, j;
            scanf("%d%d", &i, &j);
            if (recordArr[i] == recordArr[j]) printf("Yes\n");
            else printf("No\n");
        }
        return 0;
    }
    

    제가 작성한 코드인데요.
    어느 부분에서 시간초과가 뜰까요? ㅜㅜ


    5년 전
1개의 댓글이 있습니다.
  • universalee
    universalee

    arr의 길이를 strlen함수를 사용하여 따로 구하지 않고 null문자를 만날 때 반복문이 끝나게 했더니 통과가 되네요!


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