프로그래머스 연습문제
- Lv 1. 가장 가까운 같은 글자 (Python)
https://school.programmers.co.kr/learn/courses/30/lessons/142086
def solution(s):
answer = []
word = ''
for i in range(len(s)):
if (s[i] in word): # 만약 이미 있는 단어라면, 떨어진 간격 구하기 (현재 위치에서 가장 가깝게 떨어진 값)
answer.append(i - word.rindex(s[i]))
else:
answer.append(-1) # 아니라면 -1로 표현
word += s[i] # 이미 있는 단어임을 알게하기 위해서 + 떨어진 간격을 구하기 위해서 -> 검사 후 word에 한 글자씩 추가
return answer
word
에 없는 글자면 → -1을 추가word
에 있는 글자면 (이미 한번 거쳐간 글자) → 간격 구하기▶️ rindex()
참고 : https://homzzang.com/b/py-191
지정 문자열의 마지막 위치를 찾아준다.
이 문제에서는 현재 위치에서 만약 word
에 이미 있는 글자가 나왔을 때, 만약 이 글자가 이전에도 나왔어서 4칸 앞, 2칸 앞에 있다라고 한다면,
가장 가까운 간격인 2칸 앞에 있는 글자의 인덱스를 구해서 현재 위치에서 빼주어야 한다. (떨어진 간격을 구하기 위해)
따라서 현재 문자열에서 같은 글자라면 가장 앞에 있는 글자 인덱스가 아닌, 가장 마지막 위치를 구해주어야 가까운 간격이기 때문에, rindex
를 사용하였다.
s = "banana"
x = s.rindex("a")
print(x)
>>> 결과값: 5