Code KATA | # 3

Jiwon Jung·2021년 1월 1일
0

Code KATA

목록 보기
3/7
post-thumbnail

문제

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.

str: 텍스트
return: 중복되지 않은 알파벳 길이 (숫자 반환)

예를 들어,

str = "abcabcabc"
return3
=> 'abc' 가 제일 길기 때문

str = "aaaaa"
return1
=> 'a' 가 제일 길기 때문

str = "sttrg"
return3
=> 'trg' 가 제일 길기 때문

문제 접근 방식

문제의 중점 파악

  • 처음 중복되는 지점 찾기
  • 지점별로 단어 구별하기
  • 가장 긴단어의 길이 구하기

이 세가지에 대한 해결 방식으로

  • looping을 이용하여 문자를 하나씩 추가하여 현재까지 추가된 단어 중에 문자가 존재하는지 확인
  • 문자가 중복 되지 않는다면 단어에 추가 > 단어가에 중복 문자가 존재하면 현재까지 저장된 단어 컷, 리스트에 append > 다음 문자부터 다시 srtring 추가
  • max함수에 key값을 len으로 두어 가장 긴 단어 길이 추출 return

나의 코드

def get_len_of_str(s):
  lst = []
  word = ''
  #looping
  for i in s:
    #중복되는 단어 없으면 sting에 저장
    if i not in word:
      word= word+i
    #중복 되는 문자 존재시 현재까지 저장한 스트링을 저장, list에 append
    elif i in word:
      lst.append(word)
      word=''
      word = word+i
  #중복값 없는 마지막으로 남은 str을 append
  lst.append(word)
  #lst에서 가장 긴 단어 찾기
  longest = max(lst,key=len)
  
  return len(a)
        

problem

이번 문제는 일단 longest를 구하는 맥스 함수에 대한 이해가 부족했다.
key값으로 여러가지 조건을 이용한 max 함수 응용이 가능하다는 것을 모르고 있었다.

max(값,key=func)

What I Learnt

기본형 내장 함수의 응용

파이썬은 사람이 사용하기 편한 언어인 만큼 다양한 내장 함수와 그 한수들의 응용버전이 가능하다. 항상 사용하는 함수들에 대한 새로운 기능을 찾을 노력이 항상필요하다고 생각한다. 보다 간결하면서도 powerful한 로직을 구현 할수가 있기 때문이다. 이를 위해 공식문서나 기타 개발자들의 조언이 담긴 문서들을 찾아보고 계속 업데이트할 필요가 있는 것 같다.

  • 나의 생각보다 파이썬은 훨씬 편하다!!!
profile
Venire, Videre, Vincere

0개의 댓글