june7025   2년 전

제 아이디어를 설명해드리겠습니다.

우선 한 단어내에서 첫 알파벳부터 마지막 알파벳까지 확인합니다.

어떻게 확인하냐면 우선 선택된 알파벳 이후 알파벳 중 선택된 알파벳과 같은 알파벳이 몇개 있는지 확인합니다.

만약 그룹단어면 [선택된 알파벳+같은 알파벳 수]하면 같은 알파벳이 나오게 됩니다. ----조건 1

또한 한 단어내에서 모든 알파벳이 조건1을 만족할 시 해당 단어는 그룹단어가 됩니다. ----조건 2

이를 활용해 그룹단어의 개수를 확인합니다. 

dps2   2년 전

원리가 j번째 있는 글자와 같은 글자가 이후에 몇개 있는지 확인해서(count) j와 j+count번째의 글자가 같은지 확인하시는데

그러면 다음과 같은 반례가 있습니다.

1
aabaaa

첫번째 a에서 뒤에 등장하는 a의 갯수는 4개니까 aaba<a>a를 보게 되고 둘이 같으므로 group++이 됩니다.

그 다음 a는 마지막 a를 보게 되겠죠?

그 후 baa는 원래 의도하셨던대로 작동할테니 계속 group++이 되서 결국 group==a.size()를 만족하게 되고 aabaaa를 그룹단어로 판별하게 됩니다.

댓글을 작성하려면 로그인해야 합니다.