나의 풀이
def solution(s):
str=list(s)
result=[-1,]
for i in range(2, len(str)+1):
new_str = str[:i]
last=new_str[-1]
rest_list = list(filter(lambda x: new_str[x] == last, range(len(new_str))))
if len(rest_list) ==1:
result.append(-1)
else:
result.append(rest_list[-1]-rest_list[-2])
# print(result)
return result
다른 사람의 풀이
def solution(s):
answer = []
for i in range(len(s)): #i는 큰
idx = -1
for j in range(i-1,-1,-1): #j는 작
print(j)
if s[i]==s[j]:
idx = i-j #큰i - 작은j
break
answer.append(idx)
return answer
▶ i는 문자열 s의 end의 index를 의미하며,
▶ j는 i보다 앞에 있는 인덱스를 말한다.
▶ 문자열에 동일한 문자가 없는 경우에는 -1을 answer리스트에 대입한다.
'프로그래머스(파이썬) > LV.1(파이썬)' 카테고리의 다른 글
숫자 짝꿍 → 일치 + count() + min(a,b) + len(answer) == a.count('0')★★ + 모든 요소가 0인 경우 (0) | 2022.12.20 |
---|---|
과일장수 →특정요소 여러 개 제거★★+ 1차원 리스트 슬라이싱(n등분)★★ (0) | 2022.12.20 |
완주하지 못한 선수→ Hash 또는 Counter함수 (0) | 2022.12.19 |
다트 게임→ 정규식, findall(), recompile() + 스택을 표방한 리스트 (0) | 2022.12.19 |
체육복→ 앞에 확인하고, 뒤에 확인하고, set의 차집합(-)★ (0) | 2022.12.18 |