chung365   7년 전

알파벳이 홀수개인 경우 짝수개인 경우 나누어서 실행했습니다.

테스트케이스 웬만한 것 다 돌려보았고 올바른 답인 것 확인했는데

채점하면 틀리네요..ㅠ

반례 뭐가 있을까요??

chogahui05   7년 전

TOT, ZOZ를 넣어보세요.

그러면 값이 제대로 출력이 안 됩니다.

chogahui05   7년 전

알고리즘 수행 과정을 도식화 해서 그려보겠습니다.

홀수일 때 봅시다. TOT를 입력했을 때, 홀수개 들어간 문자는 O입니다.

그리고, 문자열을 오름차순으로 정렬한다면 OTT가 나오겠지요? 이게 cf고요.


일단 k가 0입니다. temp + 'A'는 홀수번 나온 문자일 거고요.

char c = s[3/2] = (char)(temp + 'A')에 의해서, s[1]에는 O가 들어갑니다.

문제는 이 과정에서, k가 하나 증가했어야 하는 건데요.

증가를 하지 않았기 때문에 cf[k]는 그대로 O이 되고요.


이 과정에서, s[0]과 s[2]에 그대로 O가 들어가게 되는 겁니다.


문자열에 회문을 어떻게 채울것인지에 대한 고민을

다시 해 보시는 게 좋을 듯 싶습니다.

chung365   7년 전

그 부분 생각 못했네요 ㅠㅜ

정말 감사합니다.

chung365   7년 전

안 좋은 코드긴 하지만  홀수인 경우 flag를 하나 설정하여 해당 알파벳을 제외하고 출력할 string배열에 넣도록 하였습니다.

chogahui05   7년 전

의외로 인덱스 계산 때문에 맞은 거 같은 문제가 틀린 경우도 많더라고요.

사실, ch님 아이디어도 틀린 게 없었으니까요. 정렬도 해 놓으셨고..


이런 것은, 어떻게 보면, 포인터(?) 같은 것을 이동하면서 배열에 맞는 값을 집어넣어야 하는 문제인데요.

설계할 때 포인터 쪽을 조금 더 신경을 써야 할 듯 싶습니다.

의의로 이런 것들 때문에 힘들더라고요.

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