hus5522   4년 전

string.find() 함수가 반환값이 없을 때 string::npos를 반환한다는 것을 이용해서 짠 코드입니다.


먼저 주어진 문자열의 맨 앞에서부터 조건에 맞는 문자열들이 있는지 확인 후, 없으면 맨 앞의 한 글자씩 없애나가면서 카운팅을 하는 원리로 짰습니다.

제 게시글 이전에 있던 모든 반례를 입력해도 잘 카운팅 됩니다.

저를 구원해주세요..

qwer9412   4년 전

위 코드 논리를 보니까 맨 앞을 비교해서 조건에 만족하지 않으면 맨 앞을 지우고
만족하는게 있으면 지우는 방식인데

ljldz=j 같은 경우

맨 앞 lj때문에 else if문으로 갑니다. 그러나 else if 순서상 dz=을 먼저 찾겠네요. 그래서 맨앞이 아닌 중간 값이 지워져 반례가 생깁니다!


hus5522   4년 전

오.. else-if의 순서가 의심이 가긴 했는데, 반례를 선뜻 생각해내지 못해서 낑낑대고 있었어요

되도록이면 if-else를 안쓰는 방법을 고려해봐야겠네요

시간내주셔서 감사합니다!

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