TIL-12. code kata 1

solarrrrr·2021년 10월 24일
0

Today I Learned

목록 보기
12/74

주중 과제였는데 못 풀었다.
되게 쉬워 보였는데 이상하게 잘 안 됐다.

이런 알고리즘 공부를 할 때 약간 딜레마처럼 드는 생각은
현재 내가 가진 초급 기술(if, for, while)로만 해결해 보아야 하는지
좀더 쉽게 처리가 가능한 메서드를 공부해야 하는지 모르겠다는 것이다.

일단 나는 기본 실력으로도 못 풀면서 메서드부터 찾아보는 건
도움이 안 되는 거 같아서 반복문과 조건문에 익숙해지기 위해
이 안에서 해결하려고 하는데 생각보다 잘 안 됐다.

처음엔 인덱스를 찾아 해결하려고 했는데
생각보다 오래 답이 나오지 않았고
코드카타 짝꿍인 병문님이 statswith를 써보는 게 어떻겠냐고 하셔서
기록해 두었다가 주말 동안 끙끙 하고 있다.

사실 set을 사용하거나 정규식을 쓰면 좀더 쉽게 해결이 될 거 같은데
처음 생각했던 인덱스를 이용한 방법으로 해결하고 싶어서
병문님이 주신 startswith를 이용해 풀어보았다.
다만 아직 답이 나오질 않았다.
해결되는 대로 코드는 수정할 계획이다.

알고리즘 문제를 많이 접하면 확실히 간결하고
빠르게 풀 수 있을 거 같다는 생각은 든다.

def get_prefix(strs):
  result = ""
  last = ""
  i = 0
  j = []
  c = 0
  chk = 0

  for str in strs:
    j.append(len(str))
  
  while i < min(j):
  # strs에서 가장 작은 요소의 인덱스만큼만 반복
    
    result = strs[0][i]
    
    
    for str in strs:
      #first_str = str[0]
      #del str[0]
      
      if i > 0:
        str = str[c:]
     
      print(str, i, result, chk)
      if str.startswith(result) == True:
        
        if chk == min(j):
          print("체크", chk, min(j))
          last += result
          chk = 0
        chk += 1 
      else:
        chk = 0
        break
      
      
    
    
        #print("트루 일치 안 하면", last)

    c += 1
    i += 1
    #j += 1 

  print(last)
strs = ['aa', 'aa']
get_prefix(strs)

# [0][0] [1][0] [2][0]
# [0][1] [1][1] [2][1]
# [0][2] [1][2] [2][2]

아직 미완성인 코드임....

profile
몰입

0개의 댓글