TIL30 | CodeKata 중복되지 않은 알파벳 중 제일 긴 단어, 뒤집은 모양이 같은 숫자 찾기, ⭐️공통된 시작 단어 찾기
2021. 10. 22. 17:17ㆍ언어/Python
반응형
CodeKata Week 1
문제 3
String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
str: 텍스트
return: 중복되지 않은 알파벳 길이 (숫자 반환)
def get_len_of_str(s):
# 구현
input
str = "abcabcabc"
output
3
나의 풀이
def get_len_of_str(s):
str = []
length = 0
for i in range(len(s)):
if s[i] not in str:
str.append(s[i])
else:
str = [s[i]]
print(str)
length = max(length, len(str))
return length
문제 4
숫자인 num
을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.
num: 숫자
return: true or false (뒤집은 모양이 num와 똑같은지 여부)
def get_len_of_str(s):
# 구현
input
def same_reverse(123)
def same_reverse(1221)
def same_reverse(10)
output
false
true
false
나의 풀이
def same_reverse(num):
txt = str(num)
half_len = len(txt) // 2
front = txt[:half_len]
end = txt[half_len :][::-1]
if len(front) != len(end):
end = end[:len(end)-1]
return True if front == end else False
📌️ 문제 5
Solution 풀이 보면서 효율적인 알고리즘에 대해 생각하기
strs은 단어가 담긴 배열입니다.
공통된 시작 단어(prefix)를 반환해주세요.
def get_prefix(strs):
# 구현
input
get_prefix(['start', 'stair', 'step'])
get_prefix(['start', 'wework', 'today'])
output
'st'
''
나의 풀이
def get_prefix(strs):
if len(strs) == 0 :
return ''
prefix = ''
short = min(strs, key=len)
for step in range(1, len(short)+1):
prefix = short[:step]
for str in strs:
if str.startswith(short[:step]) == False:
prefix = short[:step-1]
return prefix
return prefix
👍️ 구선생 Solution
def solution_get_prefix(strs):
if len(strs) == 0:
return ''
res = ''
strs = sorted(strs)
for i in strs[0]:
if strs[-1].startswith(res+i):
res += i
else:
break
return res
반응형
'언어 > Python' 카테고리의 다른 글
TIL38 | CodeKata 숫자 중에서 과반수가 넘은 숫자 찾기, 여러 괄호 규칙 짝 맞추기 (0) | 2021.10.27 |
---|---|
TIL31 | CodeKata 로마자에서 숫자로 바꾸기 (0) | 2021.10.25 |
TIL29 | Django C.R.U.D : Wrap up 정리 (0) | 2021.10.20 |
TIL28 | Many-to-Many관계, Django의 ManyToManyField (0) | 2021.10.20 |
TIL27 | Django C.R.U.D : URLconf, Model, View (0) | 2021.10.20 |