TIL-12. code kata 1
주중 과제였는데 못 풀었다.
되게 쉬워 보였는데 이상하게 잘 안 됐다.
이런 알고리즘 공부를 할 때 약간 딜레마처럼 드는 생각은
현재 내가 가진 초급 기술(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]
아직 미완성인 코드임....
Author And Source
이 문제에 관하여(TIL-12. code kata 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@solarrrrr1010/TIL-12.-code-kata-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)