whiteleo100   3년 전

input 받은 값에서 한 칸씩 검사해나가는 코드입니다.

먼저 'dz=' 가 있는지 3칸을 검사하고 없으면 elif문을 통해 2칸을 검색합니다.

그래도 없으면 i가 ++ 되며 다음 칸으로 이동합니다.

만약 'dz='가 있으면 z=는 검사할 필요가 없기에 바로 i는 '=' 다음 문자열을 검색 할 수 있도록 3을 더해줍니다.

elif도 마찬가지로 2를 더해줍니다.

마지막으로 

b = ("".join(b))
c = len(one) - len(b) + num

이 코드를 통해 검사를 통해 찾은 ['c=', 'c-', 'd-', 's=', 'z=', 'lj', 'nj', 'dz='] 를 다 지우면

나머지 문자의 갯수가 나오므로 그것을 더해 줍니다.

예제나 이전 질문을 보며 반례를 다 넣어 봤으나... 찾지 못 했습니다.

어디가 문제일까요..?

and a[i] != '=' and a[i] != '-' 이 코드가 없을시에 

cc==을 넣을 경우 b에 c=이 아니라 c== 이 append 되더라고요... 이 이유를 모르겠어서 그냥

and a[i] != '=' and a[i] != '-'를 집어 넣으니

cc== 을 입력해봐도 잘 작동 합니다.

그런데 문제는 틀렸다고 나옵니다.

ghghgh777   3년 전

반례 : dz

11번 라인에서 cro[7]은 ['dz=']가 아니라 'dz='라서 문제가 됩니다.

whiteleo100   3년 전

아 그러니까 cro[7] 이렇게 하면 리스트가 아니라 문자열이 나와서 

'abc' in 'abcd' 하면 true가 되는 것과 같군요..! 감사합니다.

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