인프런 커뮤니티 질문&답변

한나릴님의 프로필 이미지
한나릴

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-D

1-D 왜틀

해결된 질문

작성

·

28

·

수정됨

0

어떤 테스트 케이스를 해도 맞는경우라고 생각되는데

백준에 제출하면 왜 틀리다고 하는건지 모르겠습니다.

로직은, 처음 인덱스와 마지막인덱스를 비교하며 하나씩 옮겨가는 로직입니다. 홀수와 짝수일때를 감안해서 배열사이즈/2 만큼 반복합니다.

http://boj.kr/2be06b65af13421eac006e0e31828864

답변 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. 1-K 문제 testcase는 다되는데 왜 틀린지 모르겠습니다…

    • 이 링크에서는 초기화와 인덱스 처리에서 발생할 수 있는 일반적인 실수에 대해 설명하고 있으며, 주어진 코드에 문제를 발견하고 해결하는 방법을 안내합니다.
  2. 2-I 왜 틀렸는지 모르겠습니다.

    • 이 게시물에서는 변수 타입의 선택이 미친 영향과, 특정 데이터 처리에서 발생할 수 있는 불일치 문제를 다루고 있습니다.

이 문제들이 한나릴님의 코딩 스타일 혹은 오류와 정확히 일치하지 않을 수 있지만, 기본적인 실수나 흔한 패턴을 점검할 때 참고하기 좋을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

한나릴님의 프로필 이미지
한나릴

작성한 질문수

질문하기