1316번 - 그룹 단어 체커
예제들도 다 해봤는데 결과는 틀렸다고 나오네요. 혹시 함수로 분리시켜서 한게 잘못됐을까요?
그리고 12줄에 왜 len-1 로 해야하는지 잘 모르겠습니다. 저걸 안 하면 오류가 나더라고요.
12번째 줄의 경우, for 문 안의 내용이 i번째와 i + 1번째가 같냐를 확인하는 것이기 때문에
그냥 len으로 하면 마지막 문자와 (마지막 + 1)번째 문자를 확인하는 경우가 생겨 그렇습니다.
반례
input:
1
aabbcc
output:
aabbcc는 그룹 단어로 인정되지 않나요?
aabbcc는 그룹 단어로 판별해야하지만, 올려주신 코드상으로는 그룹 단어가 아닌걸로 판별하는 것 같습니다.
왜 틀리게 나오는지 발견은 했는데 이해가 안 돼서 질문드려요.
len을 따로 변수로 설정하지 않고 12줄에 바로 s.length() -1을 하니 해결이 되었어요. 혹시 len이 int 형이라 잘못 전달되는 걸까요?
앗
s.erase(unique(s.begin(), s.end()), s.end());
에서 s의 길이가 달라지기 때문입니다.
아!! 그렇군요. 생각지도 못 한 부분이네요. 감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
whiteus 1년 전
예제들도 다 해봤는데 결과는 틀렸다고 나오네요. 혹시 함수로 분리시켜서 한게 잘못됐을까요?
그리고 12줄에 왜 len-1 로 해야하는지 잘 모르겠습니다. 저걸 안 하면 오류가 나더라고요.