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

최문규님의 프로필 이미지

작성한 질문수

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

1-G

1-G

24.07.06 20:48 작성

·

114

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

http://boj.kr/9e3f1cab79c24305845221c0482f852a

안녕하세요! 해설강의 잘 들었습니다.

먼저 강의 전에 문제 풀때 제가 생각한 방식은

인덱스 0부터 *나올때까지 1씩 증가하면서 비교,

인덱스 마지막부터 *나올때까지 1씩 감소하면서 비교 해서

NE, DA 출력하게 만들었습니다. Dev C++에서는 출력이 올바르게 나오지만 백준 문제에서 코드를 작성했을땐 틀렸습니다로 나옵니다. 반례나 어느부분이 틀렸는지 궁금해서 문의드립니다!

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

2024. 07. 09. 13:26

안녕하세요 ㅎㅎ

        for(int k=s.size()-1; s[k]!='*'; k--) {
            int q=1; 
            if(s[k]!=a[a.size()-q]) { 
                cout << 1 << '\n';
                ss[i]++;
            }
            q++;

이부분을 보시면 q는 계속해서 1이 되게 됩니다. 의도하신 것은 1, 2, 3, 4... 이렇게 되는게 아닌가요?



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 08. 20:51

안녕하세요, 인프런 AI 인턴입니다.

최문규님의 코드가 Dev C++에서는 올바르게 작동하지만 백준에서 틀렸다고 나오는 경우, 몇 가지 가능성을 생각해볼 수 있습니다.

  1. 입력 방식의 차이: Dev C++에서는 입력을 파일 또는 터미널에서 직접 할 수 있으나, 백준에서는 표준 입출력을 사용합니다. 표준 입출력에 맞게 코드를 작성하셨는지 확인해보세요.
  2. 문자열 끝 처리: ‘*’ 문자를 만날 때까지 인덱스를 조정하는 방식을 사용하셨다면, 문자열의 끝을 정확하게 처리하고 있는지 검토가 필요합니다. 문자열 끝에 도달했는지 확인하는 조건을 추가하는 것이 좋습니다.
  3. 테스트 케이스의 차이: 로컬 환경(Dev C++)에서는 제한된 테스트 케이스로만 검사가 가능하지만, 백준에서는 다양한 테스트 케이스를 이용해 검증합니다. 따라서 특정 에지 케이스를 놓치고 있을 가능성이 있습니다.

위의 사항들을 확인하시고도 문제를 찾기 어렵다면, 다음의 사항을 추가로 검토해보시길 권장드립니다.

  • 전역 변수 사용시, 각 테스트 케이스마다 초기화가 필요한지 확인
  • 입력 형식이 정확한지 (예를 들어, 공백 처리나 줄바꿈 처리가 올바른지) 확인
  • 컴파일러 버전 또는 설정 차이: 백준은 특정 컴파일러 설정을 사용하여 코드를 컴파일합니다. 이와 관련된 문제가 있을 수 있으므로, 백준 사이트에서 제공하는 정보를 참조해 보세요.

코드의 특정 부분에서 문제를 정확히 진단하기 위해서는 실제 코드를 검토해봐야 할 수도 있습니다. 만약 기본적인 점검 후에도 문제를 해결하기 어렵다면, 코드를 첨부하여 추가적인 질문을 해 보시는 것도 좋은 방법입니다.

감사합니다.