아래와 같이 작성했습니다.
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;
}
홍환민
http://algospot.com/problems/read/ZEROONE
아래와 같이 작성했습니다.
value 배열이 입력된 수열이고, group 배열을 value랑 같은 크기로 잡고 각각에 그룹에 해당하는 일련번호를 대입합니다.
입력된 범위의 값이 00000 식이거나 111111 일 경우에 최대값 최소값이 같은 것이므로,
시작, 끝 범위의 일련번호가 다르면 0->1, 1->0으로의 변화가 한번이상 있었던 것이다 라는 것을 이용해서 풀었는데요.
수동으로 해보면 잘 나오는거 같은데, 채점을 해보면 WA 라고 나오네요.
scanf("%s", &value); 이 부분은 수정했습니다. 기초적인 실수를 했네요.
그래도 WA라고 뜨네요. 흠.
14년 전