해결된 질문
작성
·
28
·
수정됨
0
어떤 테스트 케이스를 해도 맞는경우라고 생각되는데
백준에 제출하면 왜 틀리다고 하는건지 모르겠습니다.
로직은, 처음 인덱스와 마지막인덱스를 비교하며 하나씩 옮겨가는 로직입니다. 홀수와 짝수일때를 감안해서 배열사이즈/2 만큼 반복합니다.
답변 2
0
안녕하세요 나릴님 ㅎㅎ
로직을 break;을 거는 등 좀 바꾸셔야 합니다.
예를 들어 aaab라고했을 때 나릴님 코드는 이게 펠린드롬으로 나오게 됩니다.
이렇게 해보시겠어요?
#include <bits/stdc++.h>
using namespace std;
int main(){
string str;
// 문자열 입력
cin >> str;
int end = str.size()-1;
int pelindrom = 1;
for(int i = 0 ; i<int(str.size()/2); i++){
if(str[i] != str[end-i]){
pelindrom = 0;
break;
}
}
cout << pelindrom ;
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다. 한나릴님께서 백준 문제를 푸는 동안 특정 테스트 케이스에서 문제가 발생하는 것 같아 불편을 느끼고 계신 것 같습니다. 이와 유사한 문제를 해결하는 데 도움이 될 만한 정보를 제공해 드리겠습니다.
로직상 첫 번째와 마지막 인덱스를 비교하며 진행하는 방식은 종종 off-by-one 오류(인덱스 한 자리를 잘못 설정해서 발생하는 오류)나 짝수/홀수 길이 설정에서의 실수가 있을 수 있습니다. 혹시 이부분을 다시 살펴보았는지 궁금합니다.
아래 링크들을 통해 유사한 문제와 그 해결책에 대해 확인해보시면 도움이 될 것입니다:
1-K 문제 testcase는 다되는데 왜 틀린지 모르겠습니다…
이 문제들이 한나릴님의 코딩 스타일 혹은 오류와 정확히 일치하지 않을 수 있지만, 기본적인 실수나 흔한 패턴을 점검할 때 참고하기 좋을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.