Resolved
Written on
·
47
·
Edited
Answer 2
0
안녕하세요 ㅎㅎ
odd 부분이 잘못된 것 같습니다.
odd의 초기값을 전역변수로 안해놓으면 0이 아닌 쓰레기값이 들어갈 수 있기 때문에 이부분을 신경써주고 무조건 odd를 더하지 않게 수정해야 합니다.
int odd = -1;
for(int i = 0; i < sizeof(a)/sizeof(a[0]); i++){
if(a[i] % 2 == 1) odd = i;
for(int j = 0; j < a[i] / 2; j++){
ret += 'A' + i;
}
}
string tmp;
tmp = ret;
reverse(tmp.begin(), tmp.end());
if(odd != -1)ret += 'A' + odd;
ret += tmp;
이런식으로 해보시겠어요?
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. mmmg763님.
1-K 문제에서 테스트 케이스가 통과되지 않는 반례를 찾고 계시군요. 비슷한 문제를 겪었던 다른 학습자의 질문을 통해 문제를 해결할 수 있을 것 같습니다.
여기 두 가지 유사한 게시물을 추천해 드립니다:
“1-K 반례 알 수 있을까요…” - 이 게시물에서는 어떤 경우에 알고리즘이 실패할 수 있는지에 대한 설명과 함께, 몇 가지 특정한 문자열 구조가 문제를 일으킬 수 있다는 점을 논의하고 있습니다. 응용 프로그램의 기초적인 흐름부터 캐릭터의 짝수/홀수 개수와 관련된 조건까지 점검해 보시면 좋습니다.
“1 - K 질문입니다!” - 슬라이드 뒤집기 및 캐릭터 처리 방식에 관한 여러 가지 제안과 솔루션이 포함되어 있습니다. 중간에 홀수로 남아야 할 문자와 관련된 논의도 있으니 참고하세요.
이런 링크들을 통해서 유사한 문제를 접했을 때 어떤 부분을 체크해야 하는지 알 수 있을 것입니다. 코드를 디버깅할 때는 특히 문자열이 대칭인지, 모든 조건을 충족하는지 살펴보면 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.