jryoun1   3년 전

도저히 런타임 에러를 못찾겠습니다 ㅠ

도와주시면 감사하겠습니다.

풀이 방법은 입력받은 문자열 중에서 '-'을 공백으로 치환하고 분리하여 word라는 리스트에 넣었습니다.

만약 word안에 있는 원소중에서 '를 가지고 있는 원소는 앞 뒤로 분리하여 앞과 뒤에 일치하는 것이 있는지 확인하고 카운트 해주었습니다.

happiness96   3년 전

작성하신 코드에서 런타임 에러가 나는 이유는 어포스트로피가 단어의 맨 앞, 맨 뒤에도 존재할 수 있기 때문입니다.

jryoun1   3년 전

답변 정말 감사합니다. 그런 이유가 맞는거 같네요!!

그래서 제가 find의 index가 맨 처음이나 마지막이 아닌 경우를 if문을 통해서 걸러주었는데도 불구하고 런타임 에러가 발생하네요 ㅠㅠ

왜이럴까요??

happiness96   3년 전

단어의 앞뒤로 동시에 '가 있을 경우에 런타임 에러가 발생하네요.

하지만 이를 수정한다해도 틀렸습니다가 발생할거라 예상합니다.

jryoun1   3년 전

답변 감사합니다!

그 경우 말고도 반례가 있을까요?? 

주어진 예시를 넣어봤을 때는 정답이 나와서 잘 모르겠어요 ㅠㅠ

namnamseo   2년 전

a'b'c'd 와 같은 단어의 경우 split() 호출 결과가 4개라, first, second 이렇게 두 개로 받으면 런타임 에러가 발생합니다.

split() 함수의 두 번째 인자로 숫자를 주어 해결할 수 있습니다. 이 인자는 주어진 delimiter로 최대 몇 번까지 쪼갤 지를 결정합니다.

>>> "a_b_c_d".split("_", 0)
['a_b_c_d']
>>> "a_b_c_d".split("_", 1)
['a', 'b_c_d']
>>> "a_b_c_d".split("_", 2)
['a', 'b', 'c_d']
>>> "a_b_c_d".split("_", 3)
['a', 'b', 'c', 'd']
>>> "a_b_c_d".split("_", 4)
['a', 'b', 'c', 'd']

위 예시를 참고해 적절한 값을 넣으면 정답으로 처리됩니다.

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