[python/알고리즘] 뒤에서부터 인덱스 찾기 | rfind | rindex

·2024년 12월 3일
0
post-thumbnail

알고리즘 코드카타 50번 - 가장 가까운 같은 글자

rfind(), rindex()를 이용하여 위 문제를 풀었다.

rfind(), rindex()

  • 일반적으로 index()와 find()는 string이나 list에서 입력받은 요소의 위치(인덱스)를 찾아 반환
a = ['a', 'b', 'c', 'd', 'e']
print(a.index('c'))
# 결과: 2

b = 'hello world'
print(b.find('o'))
# 결과: 4
  • 같은 요소가 두 개 이상 있다면 가장 앞에 있는 요소의 인덱스만 반환
  • rfind(), rindex()는 찾고자 하는 요소가 여러 개인 경우, 가장 뒤에 있는 요소의 인덱스 반환
a = 'banana'
print(a.rindex('a'))
# 결과: 5

b = 'hello world'
print(b.rfind('o'))
# 결과: 7

rindex()를 이용한 정답 코드

def solution(s):
    already = []
    result = []
    for i in range(len(s)):
        if s[i] not in already:
            already.append(s[i])
            result.append(-1)
        else: 
            a_index = ''.join(already).rindex(s[i])
            already.append(s[i])
            result.append(i - a_index)
    return result
profile
To Dare is To Do

0개의 댓글