[Code Kata] 공통된 시작단어 반환

Q.

strs은 단어가 담긴 배열입니다.

공통된 시작 단어(prefix)를 반환해주세요.

예를 들어

strs = ['start', 'stair', 'step']
return'st'

strs = ['start', 'wework', 'today']
return''

A.

def get_prefix(strs):
  i = 0
  j = 0
  result = []
  if strs == []:
    return ""
  range = len(min(strs, key=len))
  if range == 0:
    return ""
  while strs[i][j] == strs[0][j]:
    i += 1
    if i == len(strs) :
      result.append(strs[0][j])
      if j == (range-1):
        break
      j += 1
      i = 1
  return "".join(result)
  • 비어있는 list -> 비어있는 string return
  • 첫 단어의 첫 글자를 가지고 다음 단어들의 첫 글자와 비교 (while 문에서 i +=1 을 통해)
  • 모두 다 같은 글자인 것이 확인되면 그 글자를 result에 append
  • 그다음 j+=1을 통해 두 번째 글자에 대해 동일한 로직 실행
  • j값이 out of range 되지 않게 하기 위해 range 설정
  • 여기서 range는 모든 단어들 중 가장 짧은 단어의 길이로 설정하여 j값이 range-1 까지만 돌게 함

좋은 웹페이지 즐겨찾기