안녕하세요. 이번 포스팅에서는 Py.CheckiO 의 Scientific Expedition 레벨에 있는 Goes Right After 문제풀이를 해보겠습니다.
주의:
제 답이 최고/최적화된 답이 아닐 수 있으며, 해결하는 것에만 집중한 답이기 때문에 좀 더 나은 방법이나 해석이 있으시다면 댓글 부탁드립니다.
0. Goes Right After 문제 내용
Goes Right After 문제는 주어진 문자열(word)에 단어 두개가 순서대로(first, second) 나왔을 때 True를 return
아닌 경우엔 모두 False를 return 하는 문제입니다.
1. Goes Right After 문제 풀이
if first in word:
위의 형태로 first 가 word 라는 list에 있는지의 여부를 판단할 수 있습니다.
우선 first와 second가 모두 word 안에 들어있는지 판단하는 if문을 넣습니다.
이 if문을 통과하고 나면 first와 second가 순서대로 나오는지 판단을 위해
word.index(first)
위의 형태로 index 함수를 이용하여 word 안의 first가 어느 위치에((어느 인덱스) 있는지 값을 구하고
second의 index 값이 first의 index 값보다 크면 True를 return 합니다.
그런데 이 문제가 이상한 점이
goes_after('world', 'w', 'r')의 경우에는 world 안에 w와 r모두가 있고 순서도 정상적이므로 True가 return 되는게 맞는데
프로그램이 검사를 하게 되면 올바른 답이 False라고 하며 틀린답이라고 말하게됩니다.
이 부분을 계속 제가 뭔가 잘못알고 있나 생각을하면서 곰곰히 보다가
그냥 아예 ('world', 'w', 'r') 인 경우 자체를 예외로 False를 return 하게 만들어 채점을 해봤습니다.
그랬더니 정상적으로 문제를 해결한 것으로 나오는데, 이 case 만 문제를 만들 때 뭔가 오류가 있었나 봅니다.
어쨌든 찜찜하긴 하지만 해결됬습니다.
본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.
인용 시 출처와 같이 공개해주세요!
도움이 되셨다면 댓글 또는 공감 부탁드립니다!
댓글