문제를 잘못 읽었다. 문제에 예시는 문자열 중 문자가 나타나는 인덱스를 표시하는 내용이었는데 예시를 잘못 읽고 문자의 갯수를 표시하는 것인 줄 알았다.
왜 문제를 잘못 읽었을까? :
find 함수를 쓰지 말라고 했다. 이게 힌트였다.
find는 문자열중에 특정문자를 찾고 위치를 반환해준다, 없을경우 -1을 리턴
find는 갯수와 관계가 없다.(갯수는 count). 그러니 위치를 찾는 것으로 포커싱했어야 했다.
def get_find(char, str):
# 아래 코드를 작성해주세요.
x = char
y = str
for i in range(0, len(y)):
if y[i] == x:
return i
break
if x not in y:
return -1
for 문 이용. str을 모두 인덱스의 값으로 바꿔서 숫자로 만들어 계산. return은 처음으로 나타난 i의 자리를 구해주면 됨. 없으면 -1을 반환.
이 모든 것이 find 메소드의 원리인데 아마 이게 어려웠나보다. 전에도 비슷한 경험을 했었다.(코딩도장)
무엇이 어려웠나? : 어려웠다기보다는 머리 속에서 맴도는 것이라 헷갈려서 헤맸다. 코드를 정리하다보니 해결된 문제였다.
어떻게 해결하였나? : 임의의 단어를 생성하고 그 단어와 for 문으로 지속적으로 비교했을 때 길이를 찾는 문제.
def find_longest_word(words):
long = ""
for word in words:
if len(word) > len(long):
long = word
return long
여러 문자가 들어가더라도 알아서 for문이 돌아가준다.